From 9509eb8a20a9e0e69b10835367495ea63b3f5799 Mon Sep 17 00:00:00 2001 From: levobot Date: Fri, 11 Oct 2024 14:55:56 +0000 Subject: [PATCH] Deploy website - based on f3d803ebed8c19c66e2a96c674cd7a6fee20bdb7 --- 404.html | 10 +++++----- assets/js/84a21800.61f80d9d.js | 1 + assets/js/84a21800.646ae925.js | 1 - assets/js/{main.406ecc04.js => main.b0d033f0.js} | 4 ++-- ...js.LICENSE.txt => main.b0d033f0.js.LICENSE.txt} | 0 ...e~main.7840b7d5.js => runtime~main.4f368dbc.js} | 2 +- faqs.html | 10 +++++----- faqs/data-processing-storage.html | 10 +++++----- faqs/general.html | 10 +++++----- faqs/sample-apps.html | 10 +++++----- faqs/satellite-sensor-faqs.html | 10 +++++----- guides.html | 10 +++++----- guides/api-observability.html | 10 +++++----- guides/demo-application.html | 10 +++++----- guides/general.html | 10 +++++----- guides/general/os-compat-check.html | 10 +++++----- guides/general/private-registry.html | 10 +++++----- guides/general/supported-platforms.html | 10 +++++----- guides/install-guide.html | 10 +++++----- guides/key-concepts.html | 10 +++++----- guides/miscellaneous/api-integrations.html | 10 +++++----- guides/miscellaneous/junit-format-results.html | 10 +++++----- guides/security-testing.html | 10 +++++----- guides/security-testing/common-tasks.html | 10 +++++----- guides/security-testing/common-tasks/api-rbac.html | 10 +++++----- .../common-tasks/api-rbac/api-rbac-apis.html | 10 +++++----- .../common-tasks/api-rbac/api-rbac-glob.html | 10 +++++----- .../security-testing/common-tasks/authn-authz.html | 10 +++++----- .../common-tasks/authn-authz/authn.html | 10 +++++----- .../common-tasks/authn-authz/authz.html | 10 +++++----- .../common-tasks/authn-authz/horizontal-authz.html | 10 +++++----- .../authn-authz/horizontal-n-vertical-authz.html | 10 +++++----- .../authn-authz/supported-auth-methods.html | 10 +++++----- .../common-tasks/authn-authz/vertical-authz.html | 10 +++++----- .../common-tasks/running-test-plans.html | 10 +++++----- .../run-data-driven-test-plan.html | 10 +++++----- .../run-zero-conf-test-plan.html | 10 +++++----- guides/security-testing/concepts.html | 10 +++++----- guides/security-testing/concepts/api-catalog.html | 10 +++++----- .../concepts/api-catalog/metadata-yml.html | 10 +++++----- guides/security-testing/concepts/test-plans.html | 10 +++++----- .../concepts/test-plans/creating-test-plan.html | 10 +++++----- .../concepts/test-plans/env-yml.html | 10 +++++----- .../test-plans/fixtures/configure-fixtures.html | 10 +++++----- .../test-plans/fixtures/test-fixtures.html | 10 +++++----- .../concepts/test-plans/test-plan-types.html | 10 +++++----- .../concepts/test-run-reports.html | 10 +++++----- guides/security-testing/concepts/test-runner.html | 10 +++++----- guides/security-testing/levocli-cicd.html | 10 +++++----- guides/security-testing/test-sample-app.html | 10 +++++----- guides/security-testing/test-sample-app/crapi.html | 10 +++++----- .../test-sample-app/crapi/crapi-part-1.html | 10 +++++----- .../test-sample-app/crapi/crapi-part-2.html | 10 +++++----- .../test-your-app/test-app-schema-conformance.html | 10 +++++----- .../test-your-app/test-app-security/choices.html | 10 +++++----- .../test-app-security/data-driven.html | 10 +++++----- .../data-driven/configure-env-yml.html | 10 +++++----- .../data-driven/configure-plan-fixtures.html | 10 +++++----- .../data-driven/execute-test-plan.html | 10 +++++----- .../data-driven/generate-test-plan.html | 10 +++++----- .../test-app-security/data-driven/import-apis.html | 10 +++++----- .../test-your-app/test-app-security/zero-conf.html | 10 +++++----- .../zero-conf/configure-env-yml.html | 10 +++++----- .../zero-conf/execute-test-plan.html | 10 +++++----- .../zero-conf/generate-test-plan.html | 10 +++++----- .../test-app-security/zero-conf/import-apis.html | 10 +++++----- .../test-your-app/testing-your-own-apps.html | 10 +++++----- index.html | 10 +++++----- install-api-portal.html | 10 +++++----- install-code-analysis-tools.html | 10 +++++----- install-log-parsing-sensors.html | 10 +++++----- install-satellite.html | 10 +++++----- install-satellite/satellite-ami-aws-ec2.html | 10 +++++----- install-satellite/satellite-aws-ecs.html | 10 +++++----- install-satellite/satellite-aws-eks-fargate.html | 10 +++++----- install-satellite/satellite-aws-eks.html | 10 +++++----- install-satellite/satellite-docker.html | 10 +++++----- install-satellite/satellite-kubernetes.html | 14 +++++++------- install-traffic-capture-sensors.html | 10 +++++----- .../aws-api-gateway.html | 10 +++++----- .../aws-cloudfront.html | 10 +++++----- .../aws-traffic-mirroring.html | 10 +++++----- .../azure-api-management.html | 10 +++++----- .../cloudflare-worker.html | 10 +++++----- .../common-tasks/filter-traffic.html | 10 +++++----- .../common-tasks/k8s-helm-values.html | 10 +++++----- .../common-tasks/sensor-configuration.html | 10 +++++----- install-traffic-capture-sensors/ebpf-sensor.html | 10 +++++----- .../ebpf-sensor/sensor-apt-package.html | 10 +++++----- .../ebpf-sensor/sensor-aws-ecs-terraform.html | 10 +++++----- .../ebpf-sensor/sensor-docker.html | 10 +++++----- .../ebpf-sensor/sensor-kubernetes.html | 10 +++++----- .../ebpf-sensor/sensor-systemd-service.html | 10 +++++----- .../ebpf-sensor/sensor-yum-package.html | 10 +++++----- install-traffic-capture-sensors/pcap-sensor.html | 10 +++++----- .../pcap-sensor/sensor-docker.html | 10 +++++----- .../pcap-sensor/sensor-fargate.html | 10 +++++----- .../pcap-sensor/sensor-kubernetes.html | 10 +++++----- .../sensor-on-macos.html | 10 +++++----- .../windows-sensor.html | 10 +++++----- integrations.html | 10 +++++----- integrations/common-tasks.html | 10 +++++----- integrations/jira.html | 10 +++++----- integrations/okta.html | 10 +++++----- integrations/slack.html | 10 +++++----- integrations/splunk.html | 10 +++++----- integrations/webhooks.html | 10 +++++----- quickstart.html | 10 +++++----- quickstart/quickstart-burp-plugin.html | 10 +++++----- quickstart/quickstart-kubernetes.html | 10 +++++----- quickstart/quickstart-mac.html | 10 +++++----- quickstart/quickstart-minikube.html | 10 +++++----- quickstart/quickstart-mitm.html | 10 +++++----- quickstart/quickstart-zap-addon.html | 10 +++++----- search-index-docs-default-current.json | 2 +- search-index-docs-vulnerabilities-current.json | 2 +- search-index-docs-vulnerabilities-v1.json | 2 +- security-testing/catalog-tests.html | 10 +++++----- security-testing/github-action.html | 10 +++++----- security-testing/jenkins-plugin.html | 10 +++++----- security-testing/test-laptop.html | 10 +++++----- .../test-laptop/levo-cli-command-reference.html | 10 +++++----- .../test-laptop/levo-cli-upgrade-instructions.html | 10 +++++----- security-testing/test-laptop/test-linux.html | 10 +++++----- security-testing/test-laptop/test-mac-os.html | 10 +++++----- security-testing/test-laptop/test-windows.html | 10 +++++----- security-testing/testrunner.html | 10 +++++----- .../next/Baseline/anti-clickjacking-header.html | 10 +++++----- .../Baseline/application-error-disclosure.html | 10 +++++----- .../next/Baseline/content-type-header-missing.html | 10 +++++----- .../next/Baseline/cookie-no-httponly-flag.html | 10 +++++----- .../next/Baseline/cookie-poisoning.html | 10 +++++----- .../next/Baseline/cookie-without-secure-flag.html | 10 +++++----- .../cross-domain-misconfiguration-passive.html | 10 +++++----- vulnerabilities/next/Baseline/hash-disclosure.html | 10 +++++----- .../next/Baseline/http-server-response-header.html | 10 +++++----- .../Baseline/in-page-banner-information-leak.html | 10 +++++----- ...nformation-disclosure-debug-error-messages.html | 10 +++++----- ...sitive-information-in-http-referrer-header.html | 10 +++++----- ...on-disclosure-sensitive-information-in-url.html | 10 +++++----- .../next/Baseline/java-serialization-object.html | 10 +++++----- vulnerabilities/next/Baseline/open-redirect.html | 10 +++++----- vulnerabilities/next/Baseline/pii-disclosure.html | 10 +++++----- .../next/Baseline/private-ip-disclosure.html | 10 +++++----- .../re-examine-cache-control-directives.html | 10 +++++----- .../next/Baseline/retrieved-from-cache.html | 10 +++++----- ...-x-powered-by-http-response-header-field-s.html | 10 +++++----- .../next/Baseline/session-id-in-url-rewrite.html | 10 +++++----- .../Baseline/strict-transport-security-header.html | 10 +++++----- .../next/Baseline/weak-authentication-method.html | 10 +++++----- .../x-content-type-options-header-missing.html | 10 +++++----- .../next/Miscellaneous/schema-conformance.html | 10 +++++----- vulnerabilities/next/OWASP-API-10/A1-BOLA.html | 10 +++++----- .../OWASP-API-10/A10-Insufficient-Logging.html | 10 +++++----- vulnerabilities/next/OWASP-API-10/A2-BUA.html | 10 +++++----- .../OWASP-API-10/A3-Excessive-Data-Exposure.html | 10 +++++----- .../next/OWASP-API-10/A4-Rate-Limits.html | 10 +++++----- vulnerabilities/next/OWASP-API-10/A5-BFLA.html | 10 +++++----- .../next/OWASP-API-10/A6-Mass-Assignment.html | 10 +++++----- .../OWASP-API-10/A7-Security-Misconfiguration.html | 10 +++++----- .../next/OWASP-API-10/A8-Injection.html | 10 +++++----- .../OWASP-API-10/A9-Improper-Asset-Management.html | 10 +++++----- vulnerabilities/next/OWASP-WEB-10/A10-SSRF.html | 10 +++++----- .../A6-Vulnerable-Components/A6-Log4J-RCE.html | 10 +++++----- .../A6-Vulnerable-Components/A6-index.html | 10 +++++----- vulnerabilities/next/guide.html | 10 +++++----- .../v1/Baseline/anti-clickjacking-header.html | 10 +++++----- .../v1/Baseline/application-error-disclosure.html | 10 +++++----- .../v1/Baseline/content-type-header-missing.html | 10 +++++----- .../v1/Baseline/cookie-no-httponly-flag.html | 10 +++++----- vulnerabilities/v1/Baseline/cookie-poisoning.html | 10 +++++----- .../v1/Baseline/cookie-without-secure-flag.html | 10 +++++----- .../cross-domain-misconfiguration-passive.html | 10 +++++----- vulnerabilities/v1/Baseline/hash-disclosure.html | 10 +++++----- .../v1/Baseline/http-server-response-header.html | 10 +++++----- .../Baseline/in-page-banner-information-leak.html | 10 +++++----- ...nformation-disclosure-debug-error-messages.html | 10 +++++----- ...sitive-information-in-http-referrer-header.html | 10 +++++----- ...on-disclosure-sensitive-information-in-url.html | 10 +++++----- .../v1/Baseline/java-serialization-object.html | 10 +++++----- vulnerabilities/v1/Baseline/open-redirect.html | 10 +++++----- vulnerabilities/v1/Baseline/pii-disclosure.html | 10 +++++----- .../v1/Baseline/private-ip-disclosure.html | 10 +++++----- .../re-examine-cache-control-directives.html | 10 +++++----- .../v1/Baseline/retrieved-from-cache.html | 10 +++++----- ...-x-powered-by-http-response-header-field-s.html | 10 +++++----- .../v1/Baseline/session-id-in-url-rewrite.html | 10 +++++----- .../Baseline/strict-transport-security-header.html | 10 +++++----- .../v1/Baseline/weak-authentication-method.html | 10 +++++----- .../x-content-type-options-header-missing.html | 10 +++++----- .../v1/Miscellaneous/schema-conformance.html | 10 +++++----- vulnerabilities/v1/OWASP-API-10/A1-BOLA.html | 10 +++++----- .../v1/OWASP-API-10/A10-Insufficient-Logging.html | 10 +++++----- vulnerabilities/v1/OWASP-API-10/A2-BUA.html | 10 +++++----- .../OWASP-API-10/A3-Excessive-Data-Exposure.html | 10 +++++----- .../v1/OWASP-API-10/A4-Rate-Limits.html | 10 +++++----- vulnerabilities/v1/OWASP-API-10/A5-BFLA.html | 10 +++++----- .../v1/OWASP-API-10/A6-Mass-Assignment.html | 10 +++++----- .../OWASP-API-10/A7-Security-Misconfiguration.html | 10 +++++----- vulnerabilities/v1/OWASP-API-10/A8-Injection.html | 10 +++++----- .../OWASP-API-10/A9-Improper-Asset-Management.html | 10 +++++----- vulnerabilities/v1/OWASP-WEB-10/A10-SSRF.html | 10 +++++----- .../A6-Vulnerable-Components/A6-Log4J-RCE.html | 10 +++++----- .../A6-Vulnerable-Components/A6-index.html | 10 +++++----- vulnerabilities/v1/guide.html | 10 +++++----- 205 files changed, 994 insertions(+), 994 deletions(-) create mode 100644 assets/js/84a21800.61f80d9d.js delete mode 100644 assets/js/84a21800.646ae925.js rename assets/js/{main.406ecc04.js => main.b0d033f0.js} (95%) rename assets/js/{main.406ecc04.js.LICENSE.txt => main.b0d033f0.js.LICENSE.txt} (100%) rename assets/js/{runtime~main.7840b7d5.js => runtime~main.4f368dbc.js} (99%) diff --git a/404.html b/404.html index 6d54dd5df..9212ab623 100644 --- a/404.html +++ b/404.html @@ -5,13 +5,13 @@ Page Not Found | Levo.ai Documentation - - + +
-
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+ + \ No newline at end of file diff --git a/assets/js/84a21800.61f80d9d.js b/assets/js/84a21800.61f80d9d.js new file mode 100644 index 000000000..bad78bb2b --- /dev/null +++ b/assets/js/84a21800.61f80d9d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8466],{3905:function(e,t,a){a.d(t,{Zo:function(){return p},kt:function(){return m}});var n=a(7294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,i=e.originalType,s=e.parentName,p=r(e,["components","mdxType","originalType","parentName"]),d=c(a),m=l,h=d["".concat(s,".").concat(m)]||d[m]||u[m]||i;return a?n.createElement(h,o(o({ref:t},p),{},{components:a})):n.createElement(h,o({ref:t},p))}));function m(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=a.length,o=new Array(i);o[0]=d;var r={};for(var s in t)hasOwnProperty.call(t,s)&&(r[s]=t[s]);r.originalType=e,r.mdxType="string"==typeof e?e:l,o[1]=r;for(var c=2;clevoai namespace & install Satellite",id:"3-create-levoai-namespace--install-satellite",level:3},{value:"If locating Satellite on the same cluster alongside Sensor",id:"if-locating-satellite-on-the-same-cluster-alongside-sensor",level:4},{value:"If locating Satellite on a dedicated cluster",id:"if-locating-satellite-on-a-dedicated-cluster",level:4},{value:"If rabbitmq persistence needs to be disabled",id:"if-rabbitmq-persistence-needs-to-be-disabled",level:4},{value:"Kubernetes related customizations",id:"kubernetes-related-customizations",level:4},{value:"Add Tolerations, Affinity and Node Selectors",id:"add-tolerations-affinity-and-node-selectors",level:5},{value:"4. Verify connectivity with Levo.ai",id:"4-verify-connectivity-with-levoai",level:3},{value:"a. Check Satellite health",id:"a-check-satellite-health",level:4},{value:"b. Check connectivity",id:"b-check-connectivity",level:4},{value:"5. Note down Host:Port information",id:"5-note-down-hostport-information",level:3},{value:"If locating Satellite on the same cluster alongside Sensor",id:"if-locating-satellite-on-the-same-cluster-alongside-sensor-1",level:4},{value:"If locating Satellite on a dedicated cluster",id:"if-locating-satellite-on-a-dedicated-cluster-1",level:4},{value:"6. Optionally, enable authentication for satellite APIs.",id:"6-optionally-enable-authentication-for-satellite-apis",level:3},{value:"7. Optionally, access Satellite through a CNAME and HTTPS",id:"7-optionally-access-satellite-through-a-cname-and-https",level:3},{value:"Satellite Lifecycle Management",id:"satellite-lifecycle-management",level:2},{value:"Upgrade Satellite",id:"upgrade-satellite",level:3},{value:"Uninstall Satellite",id:"uninstall-satellite",level:3},{value:"Change the Authorization Key used to communicate with Levo.ai",id:"change-the-authorization-key-used-to-communicate-with-levoai",level:3},{value:"Change the minimum number of URLs that the satellite needs to observe to detect an API endpoint.",id:"change-the-minimum-number-of-urls-that-the-satellite-needs-to-observe-to-detect-an-api-endpoint",level:3},{value:"List Satellite's pods",id:"list-satellites-pods",level:3},{value:"Tail logs of a specific pod",id:"tail-logs-of-a-specific-pod",level:3},{value:"Troubleshooting",id:"troubleshooting",level:3},{value:"Tagger Errors",id:"tagger-errors",level:3},{value:"Authentication Errors",id:"authentication-errors",level:3},{value:"Connectivity Errors",id:"connectivity-errors",level:3}],d={toc:u};function m(e){var t=e.components,a=(0,l.Z)(e,o);return(0,i.kt)("wrapper",(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"satellite-on-kubernetes"},"Satellite on Kubernetes"),(0,i.kt)("h2",{id:"setup"},"Setup"),(0,i.kt)("h3",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Kubernetes version >= ",(0,i.kt)("inlineCode",{parentName:"li"},"v1.18.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://helm.sh/docs/intro/install/"},"Helm v3")," installed and working."),(0,i.kt)("li",{parentName:"ul"},"The Kubernetes cluster API endpoint should be reachable from the machine you are running Helm."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"kubectl")," access to the cluster, with ",(0,i.kt)("inlineCode",{parentName:"li"},"cluster-admin")," permissions."),(0,i.kt)("li",{parentName:"ul"},"At least 4 CPUs"),(0,i.kt)("li",{parentName:"ul"},"At least 8 GB RAM")),(0,i.kt)("h3",{id:"1-setup-environment-variables"},"1. Setup environment variables"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"export LEVOAI_AUTH_KEY=<'Authorization Key'>\n")),(0,i.kt)("h3",{id:"2-install-levoai-helm-repo"},"2. Install levoai Helm repo"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"helm repo add levoai https://charts.levo.ai && helm repo update\n")),(0,i.kt)("h3",{id:"3-create-levoai-namespace--install-satellite"},"3. Create ",(0,i.kt)("inlineCode",{parentName:"h3"},"levoai")," namespace & install Satellite"),(0,i.kt)("h4",{id:"if-locating-satellite-on-the-same-cluster-alongside-sensor"},"If locating Satellite on the same cluster alongside Sensor"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"helm upgrade --install -n levoai --create-namespace \\\n --set global.levoai_config_override.onprem-api.refresh-token=$LEVOAI_AUTH_KEY \\\n levoai-satellite levoai/levoai-satellite\n")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Depending on the region you are installing in, you may need to set a different Levo base URL for the satellite."),(0,i.kt)("p",{parentName:"admonition"},"For example, if the satellite will be used with ",(0,i.kt)("inlineCode",{parentName:"p"},"app.india-1.levo.ai"),", the installation command will be:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'helm upgrade --install -n levoai --create-namespace \\\n --set global.levoai_config_override.onprem-api.refresh-token=$LEVOAI_AUTH_KEY \\\n --set global.levoai_config_override.onprem-api.url="https://api.india-1.levo.ai" \\\n levoai-satellite levoai/levoai-satellite\n'))),(0,i.kt)("h4",{id:"if-locating-satellite-on-a-dedicated-cluster"},"If locating Satellite on a dedicated cluster"),(0,i.kt)("p",null,"You will need to expose the Satellite via either a ",(0,i.kt)("inlineCode",{parentName:"p"},"LoadBalancer")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"NodePort"),", such that is is reachable by Sensors running in other clusters. Please modify the below command appropriately."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"# Please modify this command template and choose either 'LoadBalancer' or 'NodePort', prior to execution\nhelm upgrade --install -n levoai --create-namespace \\\n --set global.levoai_config_override.onprem-api.refresh-token=$LEVOAI_AUTH_KEY \\\n --set haproxy.service.type= \\\n # --set global.levoai_config_override.onprem-api.url=\"https://api.india-1.levo.ai\" \\\n levoai-satellite levoai/levoai-satellite\n")),(0,i.kt)("p",null,":::"),(0,i.kt)("h4",{id:"if-rabbitmq-persistence-needs-to-be-disabled"},"If rabbitmq persistence needs to be disabled"),(0,i.kt)("p",null,"You will need to set rabbitmq.persistence.enabled property to false."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'helm upgrade --install -n levoai --create-namespace \\\n --set global.levoai_config_override.onprem-api.refresh-token=$LEVOAI_AUTH_KEY \\\n --set rabbitmq.persistence.enabled=false \\\n # --set global.levoai_config_override.onprem-api.url="https://api.india-1.levo.ai" \\\n levoai-satellite levoai/levoai-satellite\n')),(0,i.kt)("h4",{id:"kubernetes-related-customizations"},"Kubernetes related customizations"),(0,i.kt)("h5",{id:"add-tolerations-affinity-and-node-selectors"},"Add Tolerations, Affinity and Node Selectors"),(0,i.kt)("p",null,"Tolerations, Affinity and Node Selectors for the Satellite pods may be specified via helm values. For example:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'tolerations:\n - key: node-role.kubernetes.io/control-plane\n operator: Exists\n effect: NoSchedule\n - key: "devops"\n operator: "Equal"\n value: "dedicated"\n effect: "NoSchedule"\nnodeSelector:s\n kubernetes.io/hostname: "mavros"\naffinity:\n nodeAffinity:\n requiredDuringSchedulingIgnoredDuringExecution:\n nodeSelectorTerms:\n - matchExpressions:\n - key: topology.kubernetes.io/zone\n operator: In\n values:\n - antarctica-east1\n - antarctica-west1\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 1\n preference:\n matchExpressions:\n - key: another-node-label-key\n operator: In\n values:\n - another-node-label-value\n')),(0,i.kt)("h3",{id:"4-verify-connectivity-with-levoai"},"4. Verify connectivity with Levo.ai"),(0,i.kt)("h4",{id:"a-check-satellite-health"},"a. Check Satellite health"),(0,i.kt)("p",null,"The Satellite is comprised of five sub components 1) levoai-collector, 2) levoai-ion, 3) levoai-rabbitmq, 4)levoai-satellite, and 5) levoai-tagger."),(0,i.kt)("p",null,"Wait a couple of minutes after the installation, and check the health of the components by executing the following:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"kubectl -n levoai get pods\n")),(0,i.kt)("p",null,"If the Satellite is healthy, you should see output similar to below."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"NAME READY STATUS RESTARTS AGE\nlevoai-collector-5b54df8dd6-55hq9 1/1 Running 0 5m0s\nlevoai-ion-669c9c4fbc-vsmmr 1/1 Running 0 5m0s\nlevoai-rabbitmq-0 1/1 Running 0 5m0s\nlevoai-satellite-8688b67c65-xppbn 1/1 Running 0 5m0s\nlevoai-tagger-7bbf565b47-b572w 1/1 Running 0 5m0s\n")),(0,i.kt)("h4",{id:"b-check-connectivity"},"b. Check connectivity"),(0,i.kt)("p",null,"Execute the following to check for connectivity health:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'# Please specify the actual pod name for levoai-tagger below\nkubectl -n levoai logs | grep "Ready to process; waiting for messages."\n')),(0,i.kt)("p",null,"If connectivity is healthy, you will see output similar to below."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'{"level": "info", "time": "2022-06-07 08:07:22,439", "line": "rabbitmq_client.py:155", "version": "fc628b50354bf94e544eef46751d44945a2c55bc", "module": "/opt/levoai/e7s/src/python/levoai_e7s/satellite/rabbitmq_client.py", "message": "Ready to process; waiting for messages."}\n')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Please contact ",(0,i.kt)("inlineCode",{parentName:"strong"},"support@levo.ai")," if you notice health/connectivity related errors.")),(0,i.kt)("h3",{id:"5-note-down-hostport-information"},"5. Note down ",(0,i.kt)("inlineCode",{parentName:"h3"},"Host:Port")," information"),(0,i.kt)("h4",{id:"if-locating-satellite-on-the-same-cluster-alongside-sensor-1"},"If locating Satellite on the same cluster alongside Sensor"),(0,i.kt)("p",null,"The Collector can now be reached by the Sensors running in the same cluster at ",(0,i.kt)("inlineCode",{parentName:"p"},"levoai-collector.levoai:4317"),". Please note this, as it will be required to configure the Sensor."),(0,i.kt)("h4",{id:"if-locating-satellite-on-a-dedicated-cluster-1"},"If locating Satellite on a dedicated cluster"),(0,i.kt)("p",null,"Run the below command and note the ",(0,i.kt)("inlineCode",{parentName:"p"},"external")," address/port of the the Collector service. This will be required to configure the Sensor."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"kubectl get service levoai-collector -n levoai\n")),(0,i.kt)("h3",{id:"6-optionally-enable-authentication-for-satellite-apis"},"6. Optionally, enable authentication for satellite APIs."),(0,i.kt)("p",null,"Add below config to ",(0,i.kt)("inlineCode",{parentName:"p"},"values.yml")," file to enable authentication for satellite APIs using a unique key.\nRefer to ",(0,i.kt)("a",{parentName:"p",href:"/integrations/common-tasks#accessing-organization-ids"},"Accessing Organization IDs")," for fetching the Organization ID."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"levoai-collector:\n config:\n data:\n extensions:\n levoauth:\n org_id: \n receivers:\n otlp:\n protocols:\n grpc:\n auth:\n authenticator: levoauth\n http:\n auth:\n authenticator: levoauth\n service:\n extensions: [health_check, memory_ballast, levoauth]\n")),(0,i.kt)("p",null,"Install satellite using this ",(0,i.kt)("inlineCode",{parentName:"p"},"values.yml"),"."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"helm upgrade --install -n levoai --create-namespace \\\n -f ./values.yml \\\n --set global.levoai_config_override.onprem-api.refresh-token=$LEVOAI_AUTH_KEY \\\n levoai-satellite levoai/levoai-satellite\n")),(0,i.kt)("h3",{id:"7-optionally-access-satellite-through-a-cname-and-https"},"7. Optionally, access Satellite through a CNAME and HTTPS"),(0,i.kt)("p",null,"Add below config to ",(0,i.kt)("inlineCode",{parentName:"p"},"values.yml")," file to add an ingress route for Satellite APIs so that it can be accessed through a CNAME and HTTPS."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"haproxy:\n ingress:\n enabled: true\n hostname: \n ingressClassName: haproxy\n pathType: Prefix\n extraPaths:\n - path: /*\n pathType: Prefix\n backend:\n service:\n name: levoai-haproxy\n port:\n number: 80\n")),(0,i.kt)("p",null,"Please reach out to ",(0,i.kt)("a",{parentName:"p",href:"mailto:support@levo.ai"},"support@levo.ai")," if you're using a custom ingress controller."),(0,i.kt)("p",null,"Please proceed to ",(0,i.kt)("a",{parentName:"p",href:"/install-traffic-capture-sensors"},"install Traffic Capture Sensors"),"."),(0,i.kt)("hr",null),(0,i.kt)("h2",{id:"satellite-lifecycle-management"},"Satellite Lifecycle Management"),(0,i.kt)("h3",{id:"upgrade-satellite"},"Upgrade Satellite"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"# Setup environment variables\nexport LEVOAI_AUTH_KEY=<'Authorization Key' from the original installation> \n\n# Update helm repo and upgrade installation\nhelm repo update\n\nhelm upgrade -n levoai \\\n --set global.levoai_config_override.onprem-api.refresh-token=$LEVOAI_AUTH_KEY \\\n levoai-satellite levoai/levoai-satellite\n")),(0,i.kt)("h3",{id:"uninstall-satellite"},"Uninstall Satellite"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"helm uninstall levoai-satellite -n levoai\n")),(0,i.kt)("p",null,"After running the above command, wait until all Satellite pods have been terminated, and then run the following command to delete the rabbitmq PersistentVolumeClaim. Deleting the PVC also deletes the corresponding PersistentVolume."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl delete pvc data-levoai-rabbitmq-0 -n levoai\n")),(0,i.kt)("p",null,"In case the ",(0,i.kt)("inlineCode",{parentName:"p"},"kubectl delete pvc")," command gets stuck, run the following command before deleting the PVC again:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},'kubectl patch pvc data-levoai-rabbitmq-0 -p \'{"metadata":{"finalizers":null}}\' -n levoai\n')),(0,i.kt)("h3",{id:"change-the-authorization-key-used-to-communicate-with-levoai"},"Change the ",(0,i.kt)("inlineCode",{parentName:"h3"},"Authorization Key")," used to communicate with Levo.ai"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Uninstall the Satellite."),(0,i.kt)("li",{parentName:"ul"},"Reinstall the Satellite with the new ",(0,i.kt)("inlineCode",{parentName:"li"},"Authorization Key"),".")),(0,i.kt)("h3",{id:"change-the-minimum-number-of-urls-that-the-satellite-needs-to-observe-to-detect-an-api-endpoint"},"Change the ",(0,i.kt)("inlineCode",{parentName:"h3"},"minimum number of URLs")," that the satellite needs to observe to detect an API endpoint."),(0,i.kt)("p",null,"To detect an API endpoint, Satellite waits for at least '10' URLs to match that endpoint URL pattern.\nThis number may cause delays in detecting API endpoints when there is not enough load."),(0,i.kt)("p",null,"If you want to change this number to suit your environment:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Export an environment variable ",(0,i.kt)("inlineCode",{parentName:"li"},"LEVOAI_MIN_URLS_PER_PATTERN"),", and"),(0,i.kt)("li",{parentName:"ul"},"Restart the Satellite with 'min_urls_required_per_pattern' helm config override option")),(0,i.kt)("p",null,"For example, to set this to 3:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"# Setup environment variables\nexport LEVOAI_AUTH_KEY=<'Authorization Key' from the original installation>\nexport LEVOAI_MIN_URLS_PER_PATTERN=3\n\n# Update helm repo and upgrade installation\nhelm repo update\n\nhelm upgrade -n levoai \\\n --set global.levoai_config_override.onprem-api.refresh-token=$LEVOAI_AUTH_KEY \\\n --set global.levoai_config_override.min_urls_required_per_pattern=$LEVOAI_MIN_URLS_PER_PATTERN \\\n levoai-satellite levoai/levoai-satellite\n")),(0,i.kt)("h3",{id:"list-satellites-pods"},"List Satellite's pods"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"kubectl -n levoai get pods | grep -E '^levoai-collector|^levoai-rabbitmq|^levoai-satellite|^levoai-tagger'\n")),(0,i.kt)("h3",{id:"tail-logs-of-a-specific-pod"},"Tail logs of a specific pod"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"kubectl -n levoai logs -f \n")),(0,i.kt)("hr",null),(0,i.kt)("h3",{id:"troubleshooting"},"Troubleshooting"),(0,i.kt)("h3",{id:"tagger-errors"},"Tagger Errors"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"Tagger")," component sends API endpoint metadata information to Levo.ai. API Observability will not function if the Tagger is in an errored state."),(0,i.kt)("p",null,"Please see sample output below from ",(0,i.kt)("inlineCode",{parentName:"p"},"kubectl get pods"),", that shows the Tagger in an errored state."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"NAME READY STATUS RESTARTS AGE\nlevoai-collector-848fb4fff9-gv8g9 1/1 Running 0 64s\nlevoai-rabbitmq-0 0/1 Running 0 64s\nlevoai-satellite-54956ccb89-5s4h2 1/1 Running 0 64s\nlevoai-tagger-799db4d9cc-89jm8 0/1 Error 1 (14s ago) 64s\n")),(0,i.kt)("p",null,"Below are common error scenarios:"),(0,i.kt)("h3",{id:"authentication-errors"},"Authentication Errors"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"Tagger")," component authenticates with Levo.ai using the ",(0,i.kt)("inlineCode",{parentName:"p"},"Authorization Key"),". If Tagger is unable to authenticate, it will error out."),(0,i.kt)("p",null,"Check for authentication errors in the ",(0,i.kt)("inlineCode",{parentName:"p"},"Tagger")," logs:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'\nkubectl -n levoai logs | grep "Exception: Failed to refresh access token"\n')),(0,i.kt)("p",null,"If there are exception messages, you have an incorrect or stale ",(0,i.kt)("inlineCode",{parentName:"p"},"Authorization Key"),". Please contact ",(0,i.kt)("a",{parentName:"p",href:"mailto:support@levo.ai"},"support@levo.ai")," for further assistance."),(0,i.kt)("h3",{id:"connectivity-errors"},"Connectivity Errors"),(0,i.kt)("p",null,"Check for connectivity errors in the ",(0,i.kt)("inlineCode",{parentName:"p"},"Tagger")," logs:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'\nkubectl -n levoai logs | grep "ConnectionRefusedError: [Errno 111] Connection refused"\n')),(0,i.kt)("p",null,"If there are exception messages, Tagger is unable to connect to dependent services. It generally establishes connection after 3/4 retries. Please contact ",(0,i.kt)("a",{parentName:"p",href:"mailto:support@levo.ai"},"support@levo.ai")," for further assistance."),(0,i.kt)("br",null))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/84a21800.646ae925.js b/assets/js/84a21800.646ae925.js deleted file mode 100644 index 3370d6354..000000000 --- a/assets/js/84a21800.646ae925.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8466],{3905:function(e,t,a){a.d(t,{Zo:function(){return u},kt:function(){return m}});var n=a(7294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,i=e.originalType,s=e.parentName,u=r(e,["components","mdxType","originalType","parentName"]),d=c(a),m=l,h=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return a?n.createElement(h,o(o({ref:t},u),{},{components:a})):n.createElement(h,o({ref:t},u))}));function m(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=a.length,o=new Array(i);o[0]=d;var r={};for(var s in t)hasOwnProperty.call(t,s)&&(r[s]=t[s]);r.originalType=e,r.mdxType="string"==typeof e?e:l,o[1]=r;for(var c=2;clevoai namespace & install Satellite",id:"3-create-levoai-namespace--install-satellite",level:3},{value:"If locating Satellite on the same cluster alongside Sensor",id:"if-locating-satellite-on-the-same-cluster-alongside-sensor",level:4},{value:"If locating Satellite on a dedicated cluster",id:"if-locating-satellite-on-a-dedicated-cluster",level:4},{value:"If rabbitmq persistence needs to be disabled",id:"if-rabbitmq-persistence-needs-to-be-disabled",level:4},{value:"Kubernetes related customizations",id:"kubernetes-related-customizations",level:4},{value:"Add Tolerations, Affinity and Node Selectors",id:"add-tolerations-affinity-and-node-selectors",level:5},{value:"4. Verify connectivity with Levo.ai",id:"4-verify-connectivity-with-levoai",level:3},{value:"a. Check Satellite health",id:"a-check-satellite-health",level:4},{value:"b. Check connectivity",id:"b-check-connectivity",level:4},{value:"5. Note down Host:Port information",id:"5-note-down-hostport-information",level:3},{value:"If locating Satellite on the same cluster alongside Sensor",id:"if-locating-satellite-on-the-same-cluster-alongside-sensor-1",level:4},{value:"If locating Satellite on a dedicated cluster",id:"if-locating-satellite-on-a-dedicated-cluster-1",level:4},{value:"6. Optionally, enable authentication for satellite APIs.",id:"6-optionally-enable-authentication-for-satellite-apis",level:3},{value:"Satellite Lifecycle Management",id:"satellite-lifecycle-management",level:2},{value:"Upgrade Satellite",id:"upgrade-satellite",level:3},{value:"Uninstall Satellite",id:"uninstall-satellite",level:3},{value:"Change the Authorization Key used to communicate with Levo.ai",id:"change-the-authorization-key-used-to-communicate-with-levoai",level:3},{value:"Change the minimum number of URLs that the satellite needs to observe to detect an API endpoint.",id:"change-the-minimum-number-of-urls-that-the-satellite-needs-to-observe-to-detect-an-api-endpoint",level:3},{value:"List Satellite's pods",id:"list-satellites-pods",level:3},{value:"Tail logs of a specific pod",id:"tail-logs-of-a-specific-pod",level:3},{value:"Troubleshooting",id:"troubleshooting",level:3},{value:"Tagger Errors",id:"tagger-errors",level:3},{value:"Authentication Errors",id:"authentication-errors",level:3},{value:"Connectivity Errors",id:"connectivity-errors",level:3}],d={toc:p};function m(e){var t=e.components,a=(0,l.Z)(e,o);return(0,i.kt)("wrapper",(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"satellite-on-kubernetes"},"Satellite on Kubernetes"),(0,i.kt)("h2",{id:"setup"},"Setup"),(0,i.kt)("h3",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Kubernetes version >= ",(0,i.kt)("inlineCode",{parentName:"li"},"v1.18.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://helm.sh/docs/intro/install/"},"Helm v3")," installed and working."),(0,i.kt)("li",{parentName:"ul"},"The Kubernetes cluster API endpoint should be reachable from the machine you are running Helm."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"kubectl")," access to the cluster, with ",(0,i.kt)("inlineCode",{parentName:"li"},"cluster-admin")," permissions."),(0,i.kt)("li",{parentName:"ul"},"At least 4 CPUs"),(0,i.kt)("li",{parentName:"ul"},"At least 8 GB RAM")),(0,i.kt)("h3",{id:"1-setup-environment-variables"},"1. Setup environment variables"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"export LEVOAI_AUTH_KEY=<'Authorization Key'>\n")),(0,i.kt)("h3",{id:"2-install-levoai-helm-repo"},"2. Install levoai Helm repo"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"helm repo add levoai https://charts.levo.ai && helm repo update\n")),(0,i.kt)("h3",{id:"3-create-levoai-namespace--install-satellite"},"3. Create ",(0,i.kt)("inlineCode",{parentName:"h3"},"levoai")," namespace & install Satellite"),(0,i.kt)("h4",{id:"if-locating-satellite-on-the-same-cluster-alongside-sensor"},"If locating Satellite on the same cluster alongside Sensor"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"helm upgrade --install -n levoai --create-namespace \\\n --set global.levoai_config_override.onprem-api.refresh-token=$LEVOAI_AUTH_KEY \\\n levoai-satellite levoai/levoai-satellite\n")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Depending on the region you are installing in, you may need to set a different Levo base URL for the satellite."),(0,i.kt)("p",{parentName:"admonition"},"For example, if the satellite will be used with ",(0,i.kt)("inlineCode",{parentName:"p"},"app.india-1.levo.ai"),", the installation command will be:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'helm upgrade --install -n levoai --create-namespace \\\n --set global.levoai_config_override.onprem-api.refresh-token=$LEVOAI_AUTH_KEY \\\n --set global.levoai_config_override.onprem-api.url="https://api.india-1.levo.ai" \\\n levoai-satellite levoai/levoai-satellite\n'))),(0,i.kt)("h4",{id:"if-locating-satellite-on-a-dedicated-cluster"},"If locating Satellite on a dedicated cluster"),(0,i.kt)("p",null,"You will need to expose the Satellite via either a ",(0,i.kt)("inlineCode",{parentName:"p"},"LoadBalancer")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"NodePort"),", such that is is reachable by Sensors running in other clusters. Please modify the below command appropriately."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"# Please modify this command template and choose either 'LoadBalancer' or 'NodePort', prior to execution\nhelm upgrade --install -n levoai --create-namespace \\\n --set global.levoai_config_override.onprem-api.refresh-token=$LEVOAI_AUTH_KEY \\\n --set haproxy.service.type= \\\n # --set global.levoai_config_override.onprem-api.url=\"https://api.india-1.levo.ai\" \\\n levoai-satellite levoai/levoai-satellite\n")),(0,i.kt)("p",null,":::"),(0,i.kt)("h4",{id:"if-rabbitmq-persistence-needs-to-be-disabled"},"If rabbitmq persistence needs to be disabled"),(0,i.kt)("p",null,"You will need to set rabbitmq.persistence.enabled property to false."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'helm upgrade --install -n levoai --create-namespace \\\n --set global.levoai_config_override.onprem-api.refresh-token=$LEVOAI_AUTH_KEY \\\n --set rabbitmq.persistence.enabled=false \\\n # --set global.levoai_config_override.onprem-api.url="https://api.india-1.levo.ai" \\\n levoai-satellite levoai/levoai-satellite\n')),(0,i.kt)("h4",{id:"kubernetes-related-customizations"},"Kubernetes related customizations"),(0,i.kt)("h5",{id:"add-tolerations-affinity-and-node-selectors"},"Add Tolerations, Affinity and Node Selectors"),(0,i.kt)("p",null,"Tolerations, Affinity and Node Selectors for the Satellite pods may be specified via helm values. For example:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'tolerations:\n - key: node-role.kubernetes.io/control-plane\n operator: Exists\n effect: NoSchedule\n - key: "devops"\n operator: "Equal"\n value: "dedicated"\n effect: "NoSchedule"\nnodeSelector:s\n kubernetes.io/hostname: "mavros"\naffinity:\n nodeAffinity:\n requiredDuringSchedulingIgnoredDuringExecution:\n nodeSelectorTerms:\n - matchExpressions:\n - key: topology.kubernetes.io/zone\n operator: In\n values:\n - antarctica-east1\n - antarctica-west1\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 1\n preference:\n matchExpressions:\n - key: another-node-label-key\n operator: In\n values:\n - another-node-label-value\n')),(0,i.kt)("h3",{id:"4-verify-connectivity-with-levoai"},"4. Verify connectivity with Levo.ai"),(0,i.kt)("h4",{id:"a-check-satellite-health"},"a. Check Satellite health"),(0,i.kt)("p",null,"The Satellite is comprised of five sub components 1) levoai-collector, 2) levoai-ion, 3) levoai-rabbitmq, 4)levoai-satellite, and 5) levoai-tagger."),(0,i.kt)("p",null,"Wait a couple of minutes after the installation, and check the health of the components by executing the following:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"kubectl -n levoai get pods\n")),(0,i.kt)("p",null,"If the Satellite is healthy, you should see output similar to below."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"NAME READY STATUS RESTARTS AGE\nlevoai-collector-5b54df8dd6-55hq9 1/1 Running 0 5m0s\nlevoai-ion-669c9c4fbc-vsmmr 1/1 Running 0 5m0s\nlevoai-rabbitmq-0 1/1 Running 0 5m0s\nlevoai-satellite-8688b67c65-xppbn 1/1 Running 0 5m0s\nlevoai-tagger-7bbf565b47-b572w 1/1 Running 0 5m0s\n")),(0,i.kt)("h4",{id:"b-check-connectivity"},"b. Check connectivity"),(0,i.kt)("p",null,"Execute the following to check for connectivity health:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'# Please specify the actual pod name for levoai-tagger below\nkubectl -n levoai logs | grep "Ready to process; waiting for messages."\n')),(0,i.kt)("p",null,"If connectivity is healthy, you will see output similar to below."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'{"level": "info", "time": "2022-06-07 08:07:22,439", "line": "rabbitmq_client.py:155", "version": "fc628b50354bf94e544eef46751d44945a2c55bc", "module": "/opt/levoai/e7s/src/python/levoai_e7s/satellite/rabbitmq_client.py", "message": "Ready to process; waiting for messages."}\n')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Please contact ",(0,i.kt)("inlineCode",{parentName:"strong"},"support@levo.ai")," if you notice health/connectivity related errors.")),(0,i.kt)("h3",{id:"5-note-down-hostport-information"},"5. Note down ",(0,i.kt)("inlineCode",{parentName:"h3"},"Host:Port")," information"),(0,i.kt)("h4",{id:"if-locating-satellite-on-the-same-cluster-alongside-sensor-1"},"If locating Satellite on the same cluster alongside Sensor"),(0,i.kt)("p",null,"The Collector can now be reached by the Sensors running in the same cluster at ",(0,i.kt)("inlineCode",{parentName:"p"},"levoai-collector.levoai:4317"),". Please note this, as it will be required to configure the Sensor."),(0,i.kt)("h4",{id:"if-locating-satellite-on-a-dedicated-cluster-1"},"If locating Satellite on a dedicated cluster"),(0,i.kt)("p",null,"Run the below command and note the ",(0,i.kt)("inlineCode",{parentName:"p"},"external")," address/port of the the Collector service. This will be required to configure the Sensor."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"kubectl get service levoai-collector -n levoai\n")),(0,i.kt)("h3",{id:"6-optionally-enable-authentication-for-satellite-apis"},"6. Optionally, enable authentication for satellite APIs."),(0,i.kt)("p",null,"Add below config to ",(0,i.kt)("inlineCode",{parentName:"p"},"values.yml")," file to enable authentication for satellite APIs using a unique key.\nRefer to ",(0,i.kt)("a",{parentName:"p",href:"/integrations/common-tasks#accessing-organization-ids"},"Accessing Organization IDs")," for fetching the Organization ID."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"levoai-collector:\n config:\n data:\n extensions:\n levoauth:\n org_id: \n receivers:\n otlp:\n protocols:\n grpc:\n auth:\n authenticator: levoauth\n http:\n auth:\n authenticator: levoauth\n service:\n extensions: [health_check, memory_ballast, levoauth]\n")),(0,i.kt)("p",null,"Install satellite using this ",(0,i.kt)("inlineCode",{parentName:"p"},"values.yml"),"."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"helm upgrade --install -n levoai --create-namespace \\\n -f ./values.yml \\\n --set global.levoai_config_override.onprem-api.refresh-token=$LEVOAI_AUTH_KEY \\\n levoai-satellite levoai/levoai-satellite\n")),(0,i.kt)("p",null,"Please proceed to ",(0,i.kt)("a",{parentName:"p",href:"/install-traffic-capture-sensors"},"install Traffic Capture Sensors"),"."),(0,i.kt)("hr",null),(0,i.kt)("h2",{id:"satellite-lifecycle-management"},"Satellite Lifecycle Management"),(0,i.kt)("h3",{id:"upgrade-satellite"},"Upgrade Satellite"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"# Setup environment variables\nexport LEVOAI_AUTH_KEY=<'Authorization Key' from the original installation> \n\n# Update helm repo and upgrade installation\nhelm repo update\n\nhelm upgrade -n levoai \\\n --set global.levoai_config_override.onprem-api.refresh-token=$LEVOAI_AUTH_KEY \\\n levoai-satellite levoai/levoai-satellite\n")),(0,i.kt)("h3",{id:"uninstall-satellite"},"Uninstall Satellite"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"helm uninstall levoai-satellite -n levoai\n")),(0,i.kt)("p",null,"After running the above command, wait until all Satellite pods have been terminated, and then run the following command to delete the rabbitmq PersistentVolumeClaim. Deleting the PVC also deletes the corresponding PersistentVolume."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl delete pvc data-levoai-rabbitmq-0 -n levoai\n")),(0,i.kt)("p",null,"In case the ",(0,i.kt)("inlineCode",{parentName:"p"},"kubectl delete pvc")," command gets stuck, run the following command before deleting the PVC again:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},'kubectl patch pvc data-levoai-rabbitmq-0 -p \'{"metadata":{"finalizers":null}}\' -n levoai\n')),(0,i.kt)("h3",{id:"change-the-authorization-key-used-to-communicate-with-levoai"},"Change the ",(0,i.kt)("inlineCode",{parentName:"h3"},"Authorization Key")," used to communicate with Levo.ai"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Uninstall the Satellite."),(0,i.kt)("li",{parentName:"ul"},"Reinstall the Satellite with the new ",(0,i.kt)("inlineCode",{parentName:"li"},"Authorization Key"),".")),(0,i.kt)("h3",{id:"change-the-minimum-number-of-urls-that-the-satellite-needs-to-observe-to-detect-an-api-endpoint"},"Change the ",(0,i.kt)("inlineCode",{parentName:"h3"},"minimum number of URLs")," that the satellite needs to observe to detect an API endpoint."),(0,i.kt)("p",null,"To detect an API endpoint, Satellite waits for at least '10' URLs to match that endpoint URL pattern.\nThis number may cause delays in detecting API endpoints when there is not enough load."),(0,i.kt)("p",null,"If you want to change this number to suit your environment:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Export an environment variable ",(0,i.kt)("inlineCode",{parentName:"li"},"LEVOAI_MIN_URLS_PER_PATTERN"),", and"),(0,i.kt)("li",{parentName:"ul"},"Restart the Satellite with 'min_urls_required_per_pattern' helm config override option")),(0,i.kt)("p",null,"For example, to set this to 3:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"# Setup environment variables\nexport LEVOAI_AUTH_KEY=<'Authorization Key' from the original installation>\nexport LEVOAI_MIN_URLS_PER_PATTERN=3\n\n# Update helm repo and upgrade installation\nhelm repo update\n\nhelm upgrade -n levoai \\\n --set global.levoai_config_override.onprem-api.refresh-token=$LEVOAI_AUTH_KEY \\\n --set global.levoai_config_override.min_urls_required_per_pattern=$LEVOAI_MIN_URLS_PER_PATTERN \\\n levoai-satellite levoai/levoai-satellite\n")),(0,i.kt)("h3",{id:"list-satellites-pods"},"List Satellite's pods"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"kubectl -n levoai get pods | grep -E '^levoai-collector|^levoai-rabbitmq|^levoai-satellite|^levoai-tagger'\n")),(0,i.kt)("h3",{id:"tail-logs-of-a-specific-pod"},"Tail logs of a specific pod"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"kubectl -n levoai logs -f \n")),(0,i.kt)("hr",null),(0,i.kt)("h3",{id:"troubleshooting"},"Troubleshooting"),(0,i.kt)("h3",{id:"tagger-errors"},"Tagger Errors"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"Tagger")," component sends API endpoint metadata information to Levo.ai. API Observability will not function if the Tagger is in an errored state."),(0,i.kt)("p",null,"Please see sample output below from ",(0,i.kt)("inlineCode",{parentName:"p"},"kubectl get pods"),", that shows the Tagger in an errored state."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"NAME READY STATUS RESTARTS AGE\nlevoai-collector-848fb4fff9-gv8g9 1/1 Running 0 64s\nlevoai-rabbitmq-0 0/1 Running 0 64s\nlevoai-satellite-54956ccb89-5s4h2 1/1 Running 0 64s\nlevoai-tagger-799db4d9cc-89jm8 0/1 Error 1 (14s ago) 64s\n")),(0,i.kt)("p",null,"Below are common error scenarios:"),(0,i.kt)("h3",{id:"authentication-errors"},"Authentication Errors"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"Tagger")," component authenticates with Levo.ai using the ",(0,i.kt)("inlineCode",{parentName:"p"},"Authorization Key"),". If Tagger is unable to authenticate, it will error out."),(0,i.kt)("p",null,"Check for authentication errors in the ",(0,i.kt)("inlineCode",{parentName:"p"},"Tagger")," logs:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'\nkubectl -n levoai logs | grep "Exception: Failed to refresh access token"\n')),(0,i.kt)("p",null,"If there are exception messages, you have an incorrect or stale ",(0,i.kt)("inlineCode",{parentName:"p"},"Authorization Key"),". Please contact ",(0,i.kt)("a",{parentName:"p",href:"mailto:support@levo.ai"},"support@levo.ai")," for further assistance."),(0,i.kt)("h3",{id:"connectivity-errors"},"Connectivity Errors"),(0,i.kt)("p",null,"Check for connectivity errors in the ",(0,i.kt)("inlineCode",{parentName:"p"},"Tagger")," logs:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'\nkubectl -n levoai logs | grep "ConnectionRefusedError: [Errno 111] Connection refused"\n')),(0,i.kt)("p",null,"If there are exception messages, Tagger is unable to connect to dependent services. It generally establishes connection after 3/4 retries. Please contact ",(0,i.kt)("a",{parentName:"p",href:"mailto:support@levo.ai"},"support@levo.ai")," for further assistance."),(0,i.kt)("br",null))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.406ecc04.js b/assets/js/main.b0d033f0.js similarity index 95% rename from assets/js/main.406ecc04.js rename to assets/js/main.b0d033f0.js index a3b2c4160..e45c60048 100644 --- a/assets/js/main.406ecc04.js +++ b/assets/js/main.b0d033f0.js @@ -1,2 +1,2 @@ -/*! For license information please see main.406ecc04.js.LICENSE.txt */ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[179],{4334:function(e,t,n){"use strict";function r(e){var t,n,i="";if("string"==typeof e||"number"==typeof e)i+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t=d.reach);E+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof i)){var _,O=1;if(b){if(!(_=a(k,E,e,v))||_.index>=e.length)break;var A=_.index,P=_.index+_[0].length,I=E;for(I+=S.value.length;A>=I;)I+=(S=S.next).value.length;if(E=I-=S.value.length,S.value instanceof i)continue;for(var C=S;C!==t.tail&&(Id.reach&&(d.reach=N);var B=S.prev;if(L&&(B=l(t,B,L),E+=L.length),u(t,B,O),S=l(t,B,new i(p,g?r.tokenize(T,g):T,y,T)),R&&l(t,S,R),O>1){var j={cause:p+","+m,reach:N};o(e,t,n,S.prev,E,j),d&&j.reach>d.reach&&(d.reach=j.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,i={value:n,prev:t,next:r};return t.next=i,r.prev=i,e.length++,i}function u(e,t,n){for(var r=t.next,i=0;i"+a.content+""},r}(),r=n;n.default=n,r.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"},/"|'/]}},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(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(r.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:r.languages[t]},n.cdata=/^$/i;var i={"included-cdata":{pattern://i,inside:n}};i["language-"+t]={pattern:/[\s\S]+/,inside:r.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:i},r.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(r.languages.markup.tag,"addAttribute",{value:function(e,t){r.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\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:[t,"language-"+t],inside:r.languages[t]},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(e){var t="\\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",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),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("(\\{)"+t),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})/};e.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+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|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|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|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}},n.inside=e.languages.bash;for(var i=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,o=0;o]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},r.languages.c=r.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),r.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),r.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},r.languages.c.string],char:r.languages.c.char,comment:r.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:r.languages.c}}}}),r.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 r.languages.c.boolean,function(e){var t=/\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/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.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:t,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/}),e.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 n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.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:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(r),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,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\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,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:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(r),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},i={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?: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)(?![\w-])/i,lookbehind:!0},{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:r,number:i,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:i})}(r),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:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,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(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(r),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",i=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function o(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+i+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o(/\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:o(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:o(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:o(a),lookbehind:!0,greedy:!0},number:{pattern:o(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(r),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,i=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.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:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+i+a+"(?:"+i+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+i+a+")(?:"+i+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+i+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+i+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.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:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\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:n(/!?\[(?:(?!\]))+\](?:\([^\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(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(r),r.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:r.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},r.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var s=p(/^\{$/,/^\}$/);if(-1===s)continue;for(var l=n;l=0&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,i=r.inside["interpolation-punctuation"],a=r.pattern.source;function o(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function l(t,n,r){var i={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",i),i.tokens=e.tokenize(i.code,i.grammar),e.hooks.run("after-tokenize",i),i.tokens}function u(t){var n={};n["interpolation-punctuation"]=i;var a=e.tokenize(t,n);if(3===a.length){var o=[1,1];o.push.apply(o,l(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,o)}return new e.Token("interpolation",a,r.alias,t)}function c(t,n,r){var i=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),o=0,c={},d=l(i.map((function(e){if("string"==typeof e)return e;for(var n,i=e.content;-1!==t.indexOf(n=s(o++,r)););return c[n]=i,n})).join(""),n,r),p=Object.keys(c);return o=0,function e(t){for(var n=0;n=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var i=p[o],a="string"==typeof r?r:r.content,s=a.indexOf(i);if(-1!==s){++o;var l=a.substring(0,s),d=u(c[i]),f=a.substring(s+i.length),m=[];if(l&&m.push(l),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[o("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),o("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),o("svg",/\bsvg/.source),o("markdown",/\b(?:markdown|md)/.source),o("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),o("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,i=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.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 e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.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:t}}}}),e.languages.ts=e.languages.typescript}(r),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function a(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return i})),RegExp(e,t)}i=a(i).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var o=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(o).join(""):""},s=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===o(i.content[0].content[1])&&n.pop():"/>"===i.content[i.content.length-1].content||n.push({tagName:o(i.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===i.type&&"{"===i.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===i.type&&"}"===i.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof i)&&n.length>0&&0===n[n.length-1].openedBraces){var l=o(i);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(l=o(t[r-1])+l,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",l,null,l)}i.content&&"string"!=typeof i.content&&s(i.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(r),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],i=[];/^\w+$/.test(n)||i.push(/\w+/.exec(n)[0]),"diff"===n&&i.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:i,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(r),r.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},r.languages.go=r.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/}),r.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete r.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,i,a){if(n.language===r){var o=n.tokenStack=[];n.code=n.code.replace(i,(function(e){if("function"==typeof a&&!a(e))return e;for(var i,s=o.length;-1!==n.code.indexOf(i=t(r,s));)++s;return o[s]=e,i})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var i=0,a=Object.keys(n.tokenStack);!function o(s){for(var l=0;l=a.length);l++){var u=s[l];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=a[i],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++i;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),v=p.substring(m+f.length),b=[];h&&b.push.apply(b,o([h])),b.push(g),v&&b.push.apply(b,o([v])),"string"==typeof u?s.splice.apply(s,[l,1].concat(b)):u.content=b}}else u.content&&o(u.content)}return s}(n.tokens)}}}})}(r),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(r),r.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"}},r.languages.webmanifest=r.languages.json,r.languages.less=r.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),r.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),r.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:/[:;(){}]/},r.languages.objectivec=r.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete r.languages.objectivec["class-name"],r.languages.objc=r.languages.objectivec,r.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},r.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:/[{}[\];(),.:]/},r.languages.python["string-interpolation"].inside.interpolation.inside.rest=r.languages.python,r.languages.py=r.languages.python,r.languages.reason=r.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),r.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete r.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.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}})}(r),r.languages.scss=r.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]+\}/}}}),r.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}]}),r.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),r.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}}),r.languages.scss.atrule.inside.rest=r.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={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:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"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:r.interpolation}},rest:r}},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:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(r),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(r),r.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:/[()]/},t.Z=r},7459:function(e,t,n){"use strict";function r(e){var t,n,i="";if("string"==typeof e||"number"==typeof e)i+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t0){var l=T.utils.clone(t)||{};l.position=[o,s],l.index=i.length,i.push(new T.Token(n.slice(o,a),l))}o=a+1}}return i}).separator=/[\s\-]+/,(T.Pipeline=function(){this._stack=[]}).registeredFunctions=Object.create(null),T.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&T.utils.warn("Overwriting existing registered function: "+t),e.label=t,T.Pipeline.registeredFunctions[e.label]=e},T.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||T.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},T.Pipeline.load=function(e){var t=new T.Pipeline;return e.forEach((function(e){var n=T.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},T.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){T.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},T.Pipeline.prototype.after=function(e,t){T.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},T.Pipeline.prototype.before=function(e,t){T.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},T.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},T.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(ae&&(n=i),a!=e);)r=n-t,i=t+Math.floor(r/2),a=this.elements[2*i];return a==e||a>e?2*i:as?u+=2:o==s&&(t+=n[l+1]*r[u+1],l+=2,u+=2);return t},T.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},T.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var a,o=i.str.charAt(0);o in i.node.edges?a=i.node.edges[o]:(a=new T.TokenSet,i.node.edges[o]=a),1==i.str.length&&(a.final=!0),r.push({node:a,editsRemaining:i.editsRemaining,str:i.str.slice(1)})}if(0!=i.editsRemaining){if("*"in i.node.edges)var s=i.node.edges["*"];else{s=new T.TokenSet;i.node.edges["*"]=s}if(0==i.str.length&&(s.final=!0),r.push({node:s,editsRemaining:i.editsRemaining-1,str:i.str}),i.str.length>1&&r.push({node:i.node,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)}),1==i.str.length&&(i.node.final=!0),i.str.length>=1){if("*"in i.node.edges)var l=i.node.edges["*"];else{l=new T.TokenSet;i.node.edges["*"]=l}1==i.str.length&&(l.final=!0),r.push({node:l,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)})}if(i.str.length>1){var u,c=i.str.charAt(0),d=i.str.charAt(1);d in i.node.edges?u=i.node.edges[d]:(u=new T.TokenSet,i.node.edges[d]=u),1==i.str.length&&(u.final=!0),r.push({node:u,editsRemaining:i.editsRemaining-1,str:c+i.str.slice(2)})}}}return n},T.TokenSet.fromString=function(e){for(var t=new T.TokenSet,n=t,r=0,i=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},(T.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline}).prototype.search=function(e){return this.query((function(t){new T.QueryParser(e,t).parse()}))},T.Index.prototype.query=function(e){for(var t=new T.Query(this.fields),n=Object.create(null),r=Object.create(null),i=Object.create(null),a=Object.create(null),o=Object.create(null),s=0;s1?1:e},T.Builder.prototype.k1=function(e){this._k1=e},T.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var i=0;i=this.length)return T.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},T.QueryLexer.prototype.width=function(){return this.pos-this.start},T.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},T.QueryLexer.prototype.backup=function(){this.pos-=1},T.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=T.QueryLexer.EOS&&this.backup()},T.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(T.QueryLexer.TERM)),e.ignore(),e.more())return T.QueryLexer.lexText},T.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(T.QueryLexer.EDIT_DISTANCE),T.QueryLexer.lexText},T.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(T.QueryLexer.BOOST),T.QueryLexer.lexText},T.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(T.QueryLexer.TERM)},T.QueryLexer.termSeparator=T.tokenizer.separator,T.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==T.QueryLexer.EOS)return T.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return T.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(T.QueryLexer.TERM),T.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(T.QueryLexer.TERM),T.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(T.QueryLexer.PRESENCE),T.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(T.QueryLexer.PRESENCE),T.QueryLexer.lexText;if(t.match(T.QueryLexer.termSeparator))return T.QueryLexer.lexTerm}else e.escapeCharacter()}},(T.QueryParser=function(e,t){this.lexer=new T.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0}).prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=T.QueryParser.parseClause;e;)e=e(this);return this.query},T.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},T.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},T.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},T.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case T.QueryLexer.PRESENCE:return T.QueryParser.parsePresence;case T.QueryLexer.FIELD:return T.QueryParser.parseField;case T.QueryLexer.TERM:return T.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new T.QueryParseError(n,t.start,t.end)}},T.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=T.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=T.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new T.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r)throw new T.QueryParseError(n="expecting term or field, found nothing",t.start,t.end);switch(r.type){case T.QueryLexer.FIELD:return T.QueryParser.parseField;case T.QueryLexer.TERM:return T.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new T.QueryParseError(n,r.start,r.end)}}},T.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new T.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var i=e.peekLexeme();if(null==i)throw new T.QueryParseError(r="expecting term, found nothing",t.start,t.end);if(i.type===T.QueryLexer.TERM)return T.QueryParser.parseTerm;r="expecting term, found '"+i.type+"'";throw new T.QueryParseError(r,i.start,i.end)}},T.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case T.QueryLexer.TERM:return e.nextClause(),T.QueryParser.parseTerm;case T.QueryLexer.FIELD:return e.nextClause(),T.QueryParser.parseField;case T.QueryLexer.EDIT_DISTANCE:return T.QueryParser.parseEditDistance;case T.QueryLexer.BOOST:return T.QueryParser.parseBoost;case T.QueryLexer.PRESENCE:return e.nextClause(),T.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new T.QueryParseError(r,n.start,n.end)}else e.nextClause()}},T.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n))throw new T.QueryParseError(i="edit distance must be numeric",t.start,t.end);e.currentClause.editDistance=n;var r=e.peekLexeme();if(null!=r)switch(r.type){case T.QueryLexer.TERM:return e.nextClause(),T.QueryParser.parseTerm;case T.QueryLexer.FIELD:return e.nextClause(),T.QueryParser.parseField;case T.QueryLexer.EDIT_DISTANCE:return T.QueryParser.parseEditDistance;case T.QueryLexer.BOOST:return T.QueryParser.parseBoost;case T.QueryLexer.PRESENCE:return e.nextClause(),T.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new T.QueryParseError(i,r.start,r.end)}else e.nextClause()}},T.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n))throw new T.QueryParseError(i="boost must be numeric",t.start,t.end);e.currentClause.boost=n;var r=e.peekLexeme();if(null!=r)switch(r.type){case T.QueryLexer.TERM:return e.nextClause(),T.QueryParser.parseTerm;case T.QueryLexer.FIELD:return e.nextClause(),T.QueryParser.parseField;case T.QueryLexer.EDIT_DISTANCE:return T.QueryParser.parseEditDistance;case T.QueryLexer.BOOST:return T.QueryParser.parseBoost;case T.QueryLexer.PRESENCE:return e.nextClause(),T.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new T.QueryParseError(i,r.start,r.end)}else e.nextClause()}},void 0===(i="function"==typeof(r=function(){return T})?r.call(t,n,t,e):r)||(e.exports=i)}()},8934:function(e,t,n){"use strict";n.d(t,{_:function(){return i},t:function(){return a}});var r=n(7294),i=r.createContext(!1);function a(e){var t=e.children,n=(0,r.useState)(!1),a=n[0],o=n[1];return(0,r.useEffect)((function(){o(!0)}),[]),r.createElement(i.Provider,{value:a},t)}},9383:function(e,t,n){"use strict";var r=n(7294),i=n(3935),a=n(3727),o=n(405),s=n(412),l=[n(2497),n(3310),n(8320),n(2295)],u=n(723),c=n(6775),d=n(8790);function p(e){var t=e.children;return r.createElement(r.Fragment,null,t)}var f=n(3117),m=n(5742),h=n(2263),g=n(4996),v=n(6668),b=n(1944),y=n(4711),w=n(9727),k=n(3320),S=n(197);function E(){var e=(0,h.Z)().i18n,t=e.defaultLocale,n=e.localeConfigs,i=(0,y.l)();return r.createElement(m.Z,null,Object.entries(n).map((function(e){var t=e[0],n=e[1].htmlLang;return r.createElement("link",{key:t,rel:"alternate",href:i.createUrl({locale:t,fullyQualified:!0}),hrefLang:n})})),r.createElement("link",{rel:"alternate",href:i.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){var t=e.permalink,n=(0,h.Z)().siteConfig.url,i=function(){var e=(0,h.Z)().siteConfig.url,t=(0,c.TH)().pathname;return e+(0,g.Z)(t)}(),a=t?""+n+t:i;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:a}),r.createElement("link",{rel:"canonical",href:a}))}function _(){var e=(0,h.Z)().i18n.currentLocale,t=(0,v.L)(),n=t.metadata,i=t.image;return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),i&&r.createElement(b.d,{image:i}),r.createElement(x,null),r.createElement(E,null),r.createElement(S.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,n.map((function(e,t){return r.createElement("meta",(0,f.Z)({key:t},e))}))))}var O=new Map;function A(e){if(O.has(e.pathname))return Object.assign({},e,{pathname:O.get(e.pathname)});if((0,d.f)(u.Z,e.pathname).some((function(e){return!0===e.route.exact})))return O.set(e.pathname,e.pathname),e;var t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),Object.assign({},e,{pathname:t})}var P=n(8934),I=n(8940),C=n(1073);function T(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = '+e+" "+("/"===e?" (default value)":"")+'

\n

We suggest trying baseUrl =

\n\n'}(e)).replace(/0)&&(M.current.unobserve(e),M.current.disconnect(),null!=N&&window.docusaurus.prefetch(N))}))})),M.current.observe(e))},to:N},h&&{isActive:y,activeClassName:b}))}var h=a.forwardRef(m)},5999:function(e,t,n){"use strict";n.d(t,{Z:function(){return l},I:function(){return s}});var r=n(7294);function i(e,t){var n=e.split(/(\{\w+\})/).map((function(e,n){if(n%2==1){var r=null==t?void 0:t[e.slice(1,-1)];if(void 0!==r)return r}return e}));return n.some((function(e){return(0,r.isValidElement)(e)}))?n.map((function(e,t){return(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e})).filter((function(e){return""!==e})):n.join("")}var a=n(7529);function o(e){var t,n,r=e.id,i=e.message;if(void 0===r&&void 0===i)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!=(t=null!=(n=a[null!=r?r:i])?n:i)?t:r}function s(e,t){return i(o({message:e.message,id:e.id}),t)}function l(e){var t=e.children,n=e.id,a=e.values;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");var s=o({message:t,id:n});return r.createElement(r.Fragment,null,i(s,a))}},9935:function(e,t,n){"use strict";n.d(t,{m:function(){return r}});var r="default"},3919:function(e,t,n){"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function i(e){return void 0!==e&&!r(e)}n.d(t,{Z:function(){return i},b:function(){return r}})},4996:function(e,t,n){"use strict";n.d(t,{C:function(){return a},Z:function(){return o}});var r=n(2263),i=n(3919);function a(){var e=(0,r.Z)().siteConfig,t=e.baseUrl,n=e.url;return{withBaseUrl:function(e,r){return function(e,t,n,r){var a=void 0===r?{}:r,o=a.forcePrependBaseUrl,s=void 0!==o&&o,l=a.absolute,u=void 0!==l&&l;if(!n||n.startsWith("#")||(0,i.b)(n))return n;if(s)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;var c=n.startsWith(t)?n:t+n.replace(/^\//,"");return u?e+c:c}(n,t,e,r)}}}function o(e,t){return void 0===t&&(t={}),(0,a().withBaseUrl)(e,t)}},2263:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(7294),i=n(8940);function a(){return(0,r.useContext)(i._)}},8084:function(e,t,n){"use strict";n.d(t,{OD:function(){return a},eZ:function(){return o}});var r=n(2263),i=n(9935);function a(e,t){void 0===t&&(t={});var n=(0,r.Z)().globalData[e];if(!n&&t.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return n}function o(e,t,n){void 0===t&&(t=i.m),void 0===n&&(n={});var r=a(e),o=null==r?void 0:r[t];if(!o&&n.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+t+'".');return o}},2389:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(7294),i=n(8934);function a(){return(0,r.useContext)(i._)}},9670:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});function r(e){var t={};return function e(n,r){Object.entries(n).forEach((function(n){var i,a=n[0],o=n[1],s=r?r+"."+a:a;"object"==typeof(i=o)&&i&&Object.keys(i).length>0?e(o,s):t[s]=o}))}(e),t}},226:function(e,t,n){"use strict";n.d(t,{_:function(){return i},z:function(){return a}});var r=n(7294),i=r.createContext(null);function a(e){var t=e.children,n=e.value,a=r.useContext(i),o=(0,r.useMemo)((function(){return function(e){var t=e.parent,n=e.value;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}var r=Object.assign({},t.data,null==n?void 0:n.data);return{plugin:t.plugin,data:r}}({parent:a,value:n})}),[a,n]);return r.createElement(i.Provider,{value:o},t)}},4104:function(e,t,n){"use strict";n.d(t,{Iw:function(){return h},gA:function(){return d},WS:function(){return p},_r:function(){return u},Jo:function(){return g},zh:function(){return c},yW:function(){return m},gB:function(){return f}});var r=n(6775),i=n(8084);var a=function(e){return e.versions.find((function(e){return e.isLast}))};function o(e,t){var n=a(e);return[].concat(e.versions.filter((function(e){return e!==n})),[n]).find((function(e){return!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})}))}function s(e,t){var n,i,a=o(e,t),s=null==a?void 0:a.docs.find((function(e){return!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})}));return{activeVersion:a,activeDoc:s,alternateDocVersions:s?(n=s.id,i={},e.versions.forEach((function(e){e.docs.forEach((function(t){t.id===n&&(i[e.name]=t)}))})),i):{}}}var l={},u=function(){var e;return null!=(e=(0,i.OD)("docusaurus-plugin-content-docs"))?e:l},c=function(e){return(0,i.eZ)("docusaurus-plugin-content-docs",e,{failfast:!0})};function d(e){return void 0===e&&(e={}),function(e,t,n){void 0===n&&(n={});var i=Object.entries(e).sort((function(e,t){return t[1].path.localeCompare(e[1].path)})).find((function(e){var n=e[1];return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=i?{pluginId:i[0],pluginData:i[1]}:void 0;if(!a&&n.failfast)throw new Error("Can't find active docs plugin for \""+t+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((function(e){return e.path})).join(", "));return a}(u(),(0,r.TH)().pathname,e)}function p(e){void 0===e&&(e={});var t=d(e),n=(0,r.TH)().pathname;if(t)return{activePlugin:t,activeVersion:o(t.pluginData,n)}}function f(e){return c(e).versions}function m(e){var t=c(e);return a(t)}function h(e){return s(c(e),(0,r.TH)().pathname)}function g(e){return function(e,t){var n=a(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(c(e),(0,r.TH)().pathname)}},8320:function(e,t,n){"use strict";n.r(t);var r=n(4865),i=n.n(r);i().configure({showSpinner:!1});var a={onRouteUpdate:function(e){var t=e.location,n=e.previousLocation;if(n&&t.pathname!==n.pathname){var r=window.setTimeout((function(){i().start()}),200);return function(){return window.clearTimeout(r)}}},onRouteDidUpdate:function(){i().done()}};t.default=a},3310:function(e,t,n){"use strict";n.r(t);var r,i,a=n(1205),o=n(6809);r=a.Z,i=o.Z.themeConfig.prism.additionalLanguages,globalThis.Prism=r,i.forEach((function(e){n(6726)("./prism-"+e)})),delete globalThis.Prism},9471:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(7294),i="iconExternalLink_nPIU";function a(e){var t=e.width,n=void 0===t?13.5:t,a=e.height,o=void 0===a?13.5:a;return r.createElement("svg",{width:n,height:o,"aria-hidden":"true",viewBox:"0 0 24 24",className:i},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},1391:function(e,t,n){"use strict";n.d(t,{Z:function(){return Ea}});var r=n(7294),i=n(4334),a=n(4763),o=n(1944),s=n(5281),l=n(9727),u=n(5999),c=n(6775),d=n(5936);function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}var f="skipToContent_fXgn";function m(){var e=function(){var e=(0,r.useRef)(null),t=(0,c.k6)().action,n=(0,r.useCallback)((function(e){var t;e.preventDefault();var n=null!=(t=document.querySelector("main:first-of-type"))?t:document.querySelector("."+s.k.wrapper.main);n&&p(n)}),[]);return(0,d.S)((function(n){var r=n.location;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,handleSkip:n}}(),t=e.containerRef,n=e.handleSkip;return r.createElement("div",{ref:t,role:"region"},r.createElement("a",{href:"#",className:f,onClick:n},r.createElement(u.Z,{id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"},"Skip to main content")))}var h=n(6668),g=n(9689),v=n(3117),b=n(102),y=["width","height","color","strokeWidth","className"];function w(e){var t=e.width,n=void 0===t?21:t,i=e.height,a=void 0===i?21:i,o=e.color,s=void 0===o?"currentColor":o,l=e.strokeWidth,u=void 0===l?1.2:l,c=(e.className,(0,b.Z)(e,y));return r.createElement("svg",(0,v.Z)({viewBox:"0 0 15 15",width:n,height:a},c),r.createElement("g",{stroke:s,strokeWidth:u},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}var k="announcementBar_mb4j",S="announcementBarPlaceholder_vyr4",E="announcementBarClose_gvF7",x="announcementBarContent_xLdY";function _(){var e=(0,g.nT)(),t=e.isActive,n=e.close,a=(0,h.L)().announcementBar;if(!t)return null;var o=a.content,s=a.backgroundColor,l=a.textColor,c=a.isCloseable;return r.createElement("div",{className:k,style:{backgroundColor:s,color:l},role:"banner"},c&&r.createElement("div",{className:S}),r.createElement("div",{className:x,dangerouslySetInnerHTML:{__html:o}}),c?r.createElement("button",{type:"button",className:(0,i.Z)("clean-btn close",E),onClick:n,"aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},r.createElement(w,{width:14,height:14,strokeWidth:3.1})):null)}var O=n(2961),A=n(2466);var P=n(4700),I=n(3102),C=r.createContext(null);function T(e){var t,n,i,a,o,s,l,u=e.children,c=(t=(0,O.e)(),n=(0,I.HY)(),i=(0,r.useState)(!1),a=i[0],o=i[1],s=null!==n.component,l=(0,P.D9)(s),(0,r.useEffect)((function(){s&&!l&&o(!0)}),[s,l]),(0,r.useEffect)((function(){s?t.shown||o(!0):o(!1)}),[t.shown,s]),(0,r.useMemo)((function(){return[a,o]}),[a]));return r.createElement(C.Provider,{value:c},u)}function L(e){if(e.component){var t=e.component;return r.createElement(t,e.props)}}function R(){var e=(0,r.useContext)(C);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");var t=e[0],n=e[1],i=(0,r.useCallback)((function(){return n(!1)}),[n]),a=(0,I.HY)();return(0,r.useMemo)((function(){return{shown:t,hide:i,content:L(a)}}),[i,a,t])}function N(e){var t=e.header,n=e.primaryMenu,a=e.secondaryMenu,o=R().shown;return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,i.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},a)))}var B=n(2949),j=n(2389);function D(e){return r.createElement("svg",(0,v.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function M(e){return r.createElement("svg",(0,v.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}var F={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function z(e){var t=e.className,n=e.value,a=e.onChange,o=(0,j.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===n?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,i.Z)(F.toggle,t)},r.createElement("button",{className:(0,i.Z)("clean-btn",F.toggleButton,!o&&F.toggleButtonDisabled),type:"button",onClick:function(){return a("dark"===n?"light":"dark")},disabled:!o,title:s,"aria-label":s},r.createElement(D,{className:(0,i.Z)(F.toggleIcon,F.lightToggleIcon)}),r.createElement(M,{className:(0,i.Z)(F.toggleIcon,F.darkToggleIcon)})))}var q=r.memo(z);function W(e){var t=e.className,n=(0,h.L)().colorMode.disableSwitch,i=(0,B.I)(),a=i.colorMode,o=i.setColorMode;return n?null:r.createElement(q,{className:t,value:a,onChange:o})}var U=n(1327);function $(){return r.createElement(U.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function H(){var e=(0,O.e)();return r.createElement("button",{type:"button",className:"clean-btn navbar-sidebar__close",onClick:function(){return e.toggle()}},r.createElement(w,{color:"var(--ifm-color-emphasis-600)"}))}function G(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement($,null),r.createElement(W,{className:"margin-right--md"}),r.createElement(H,null))}var Z=n(9960),V=n(4996),Q=n(3919);function K(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var Y=n(9471),J=["activeBasePath","activeBaseRegex","to","href","label","html","isDropdownLink","prependBaseUrlToHref"];function X(e){var t=e.activeBasePath,n=e.activeBaseRegex,i=e.to,a=e.href,o=e.label,s=e.html,l=e.isDropdownLink,u=e.prependBaseUrlToHref,c=(0,b.Z)(e,J),d=(0,V.Z)(i),p=(0,V.Z)(t),f=(0,V.Z)(a,{forcePrependBaseUrl:!0}),m=o&&a&&!(0,Q.Z)(a),h=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,o,m&&r.createElement(Y.Z,l&&{width:12,height:12}))};return a?r.createElement(Z.Z,(0,v.Z)({href:u?f:a},c,h)):r.createElement(Z.Z,(0,v.Z)({to:d,isNavLink:!0},(t||n)&&{isActive:function(e,t){return n?K(n,t.pathname):t.pathname.startsWith(p)}},c,h))}var ee=["className","isDropdownItem"],te=["className","isDropdownItem"],ne=["mobile","position"];function re(e){var t=e.className,n=e.isDropdownItem,a=void 0!==n&&n,o=(0,b.Z)(e,ee),s=r.createElement(X,(0,v.Z)({className:(0,i.Z)(a?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:a},o));return a?r.createElement("li",null,s):s}function ie(e){var t=e.className,n=(e.isDropdownItem,(0,b.Z)(e,te));return r.createElement("li",{className:"menu__list-item"},r.createElement(X,(0,v.Z)({className:(0,i.Z)("menu__link",t)},n)))}function ae(e){var t,n=e.mobile,i=void 0!==n&&n,a=(e.position,(0,b.Z)(e,ne)),o=i?ie:re;return r.createElement(o,(0,v.Z)({},a,{activeClassName:null!=(t=a.activeClassName)?t:i?"menu__link--active":"navbar__link--active"}))}var oe=n(6043),se=n(8596),le=n(2263);var ue=["items","position","className","onClick"],ce=["items","className","position","onClick"],de=["mobile"];function pe(e,t){return e.some((function(e){return function(e,t){return!!(0,se.Mg)(e.to,t)||!!K(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)}))}function fe(e){var t,n=e.items,a=e.position,o=e.className,s=(e.onClick,(0,b.Z)(e,ue)),l=(0,r.useRef)(null),u=(0,r.useState)(!1),c=u[0],d=u[1];return(0,r.useEffect)((function(){var e=function(e){l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[l]),r.createElement("div",{ref:l,className:(0,i.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===a,"dropdown--show":c})},r.createElement(X,(0,v.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,i.Z)("navbar__link",o)},s,{onClick:s.to?void 0:function(e){return e.preventDefault()},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),d(!c))}}),null!=(t=s.children)?t:s.label),r.createElement("ul",{className:"dropdown__menu"},n.map((function(e,t){return r.createElement(Mi,(0,v.Z)({isDropdownItem:!0,onKeyDown:function(e){if(t===n.length-1&&"Tab"===e.key){e.preventDefault(),d(!1);var r=l.current.nextElementSibling;if(r)(r instanceof HTMLAnchorElement?r:r.querySelector("a")).focus()}},activeClassName:"dropdown__link--active"},e,{key:t}))}))))}function me(e){var t,n,a=e.items,o=e.className,s=(e.position,e.onClick),l=(0,b.Z)(e,ce),u=(n=(0,le.Z)().siteConfig.baseUrl,(0,c.TH)().pathname.replace(n,"/")),d=pe(a,u),p=(0,oe.u)({initialState:function(){return!d}}),f=p.collapsed,m=p.toggleCollapsed,h=p.setCollapsed;return(0,r.useEffect)((function(){d&&h(!d)}),[u,d,h]),r.createElement("li",{className:(0,i.Z)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(X,(0,v.Z)({role:"button",className:(0,i.Z)("menu__link menu__link--sublist menu__link--sublist-caret",o)},l,{onClick:function(e){e.preventDefault(),m()}}),null!=(t=l.children)?t:l.label),r.createElement(oe.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},a.map((function(e,t){return r.createElement(Mi,(0,v.Z)({mobile:!0,isDropdownItem:!0,onClick:s,activeClassName:"menu__link--active"},e,{key:t}))}))))}function he(e){var t=e.mobile,n=void 0!==t&&t,i=(0,b.Z)(e,de),a=n?me:fe;return r.createElement(a,i)}var ge=n(4711),ve=["width","height"];function be(e){var t=e.width,n=void 0===t?20:t,i=e.height,a=void 0===i?20:i,o=(0,b.Z)(e,ve);return r.createElement("svg",(0,v.Z)({viewBox:"0 0 24 24",width:n,height:a,"aria-hidden":!0},o),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}var ye="iconLanguage_nlXk",we=["mobile","dropdownItemsBefore","dropdownItemsAfter"];var ke=n(5815);function Se(){Se=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(O){s=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var i=t&&t.prototype instanceof d?t:d,a=Object.create(i.prototype),o=new E(r||[]);return a._invoke=function(e,t,n){var r="suspendedStart";return function(i,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw a;return _()}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var s=w(o,n);if(s){if(s===c)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=u(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===c)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}(e,n,o),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(O){return{type:"throw",arg:O}}}e.wrap=l;var c={};function d(){}function p(){}function f(){}var m={};s(m,i,(function(){return this}));var h=Object.getPrototypeOf,g=h&&h(h(x([])));g&&g!==t&&n.call(g,i)&&(m=g);var v=f.prototype=d.prototype=Object.create(m);function b(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function y(e,t){function r(i,a,o,s){var l=u(e[i],e,a);if("throw"!==l.type){var c=l.arg,d=c.value;return d&&"object"==(0,ke.Z)(d)&&n.call(d,"__await")?t.resolve(d.__await).then((function(e){r("next",e,o,s)}),(function(e){r("throw",e,o,s)})):t.resolve(d).then((function(e){c.value=e,o(c)}),(function(e){return r("throw",e,o,s)}))}s(l.arg)}var i;this._invoke=function(e,n){function a(){return new t((function(t,i){r(e,n,t,i)}))}return i=i?i.then(a,a):a()}}function w(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,w(e,t),"throw"===t.method))return c;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return c}var r=u(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,c;var i=r.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,c):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,c)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function x(e){if(e){var t=e[i];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function t(){for(;++r=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),c}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;S(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:x(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),c}},e}function Ee(e,t,n,r,i,a,o){try{var s=e[a](o),l=s.value}catch(u){return void n(u)}s.done?t(l):Promise.resolve(l).then(r,i)}function xe(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){Ee(a,r,i,o,s,"next",e)}function s(e){Ee(a,r,i,o,s,"throw",e)}o(void 0)}))}}var _e=n(3935);function Oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ae(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Pe(e,t,n){var r,i=t.initialState;return{getState:function(){return i},dispatch:function(r,a){var o=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var gt,vt,bt,yt=null,wt=(gt=-1,vt=-1,bt=void 0,function(e){var t=++gt;return Promise.resolve(e).then((function(e){return bt&&t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var At=/((gt|sm)-|galaxy nexus)|samsung[- ]/i;var Pt=["props","refresh","store"],It=["inputElement","formElement","panelElement"],Ct=["inputElement"],Tt=["inputElement","maxLength"],Lt=["item","source"];function Rt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Nt(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Dt(e){var t=e.props,n=e.refresh,r=e.store,i=jt(e,Pt);return{getEnvironmentProps:function(e){var n=e.inputElement,i=e.formElement,a=e.panelElement;return Nt({onTouchStart:function(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[i,a].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())},onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},jt(e,It))},getRootProps:function(e){return Nt({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){e.inputElement;return Nt({action:"",noValidate:!0,role:"search",onSubmit:function(a){var o;a.preventDefault(),t.onSubmit(Nt({event:a,refresh:n,state:r.getState()},i)),r.dispatch("submit",null),null===(o=e.inputElement)||void 0===o||o.blur()},onReset:function(a){var o;a.preventDefault(),t.onReset(Nt({event:a,refresh:n,state:r.getState()},i)),r.dispatch("reset",null),null===(o=e.inputElement)||void 0===o||o.focus()}},jt(e,Ct))},getLabelProps:function(e){return Nt({htmlFor:"".concat(t.id,"-input"),id:"".concat(t.id,"-label")},e)},getInputProps:function(e){var a;function o(e){(t.openOnFocus||Boolean(r.getState().query))&&kt(Nt({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},i)),r.dispatch("focus",null)}var s="ontouchstart"in t.environment,l=e||{},u=(l.inputElement,l.maxLength),c=void 0===u?512:u,d=jt(l,Tt),p=ct(r.getState()),f=function(e){return Boolean(e&&e.match(At))}(null===(a=t.environment.navigator)||void 0===a?void 0:a.userAgent),m=null!=p&&p.itemUrl&&!f?"go":"search";return Nt({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?"".concat(t.id,"-item-").concat(r.getState().activeItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:m,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:c,type:"search",onChange:function(e){kt(Nt({event:e,props:t,query:e.currentTarget.value.slice(0,c),refresh:n,store:r},i))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,i=e.store,a=Ot(e,St);if("ArrowUp"===t.key||"ArrowDown"===t.key){var o=function(){var e=n.environment.document.getElementById("".concat(n.id,"-item-").concat(i.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},s=function(){var e=ct(i.getState());if(null!==i.getState().activeItemId&&e){var n=e.item,o=e.itemInputValue,s=e.itemUrl,l=e.source;l.onActive(xt({event:t,item:n,itemInputValue:o,itemUrl:s,refresh:r,source:l,state:i.getState()},a))}};t.preventDefault(),!1===i.getState().isOpen&&(n.openOnFocus||Boolean(i.getState().query))?kt(xt({event:t,props:n,query:i.getState().query,refresh:r,store:i},a)).then((function(){i.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),s(),setTimeout(o,0)})):(i.dispatch(t.key,{}),s(),o())}else if("Escape"===t.key)t.preventDefault(),i.dispatch(t.key,null),i.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===i.getState().activeItemId||i.getState().collections.every((function(e){return 0===e.items.length})))return;t.preventDefault();var l=ct(i.getState()),u=l.item,c=l.itemInputValue,d=l.itemUrl,p=l.source;if(t.metaKey||t.ctrlKey)void 0!==d&&(p.onSelect(xt({event:t,item:u,itemInputValue:c,itemUrl:d,refresh:r,source:p,state:i.getState()},a)),n.navigator.navigateNewTab({itemUrl:d,item:u,state:i.getState()}));else if(t.shiftKey)void 0!==d&&(p.onSelect(xt({event:t,item:u,itemInputValue:c,itemUrl:d,refresh:r,source:p,state:i.getState()},a)),n.navigator.navigateNewWindow({itemUrl:d,item:u,state:i.getState()}));else if(t.altKey);else{if(void 0!==d)return p.onSelect(xt({event:t,item:u,itemInputValue:c,itemUrl:d,refresh:r,source:p,state:i.getState()},a)),void n.navigator.navigate({itemUrl:d,item:u,state:i.getState()});kt(xt({event:t,nextState:{isOpen:!1},props:n,query:c,refresh:r,store:i},a)).then((function(){p.onSelect(xt({event:t,item:u,itemInputValue:c,itemUrl:d,refresh:r,source:p,state:i.getState()},a))}))}}}(Nt({event:e,props:t,refresh:n,store:r},i))},onFocus:o,onBlur:function(){s||(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())},onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||o(n)}},d)},getPanelProps:function(e){return Nt({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){return Nt({role:"listbox","aria-labelledby":"".concat(t.id,"-label"),id:"".concat(t.id,"-list")},e)},getItemProps:function(e){var a=e.item,o=e.source,s=jt(e,Lt);return Nt({id:"".concat(t.id,"-item-").concat(a.__autocomplete_id),role:"option","aria-selected":r.getState().activeItemId===a.__autocomplete_id,onMouseMove:function(e){if(a.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",a.__autocomplete_id);var t=ct(r.getState());if(null!==r.getState().activeItemId&&t){var o=t.item,s=t.itemInputValue,l=t.itemUrl,u=t.source;u.onActive(Nt({event:e,item:o,itemInputValue:s,itemUrl:l,refresh:n,source:u,state:r.getState()},i))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var s=o.getItemInputValue({item:a,state:r.getState()}),l=o.getItemUrl({item:a,state:r.getState()});(l?Promise.resolve():kt(Nt({event:e,nextState:{isOpen:!1},props:t,query:s,refresh:n,store:r},i))).then((function(){o.onSelect(Nt({event:e,item:a,itemInputValue:s,itemUrl:l,refresh:n,source:o,state:r.getState()},i))}))}},s)}}}var Mt="1.6.2",Ft=[{segment:"autocomplete-core",version:Mt}];function zt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function qt(e){for(var t=1;t=n?null===r?null:0:i}function Gt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Zt(e){for(var t=1;t0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:Be(),plugins:i,initialState:Ue({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),i.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),i.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),i.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(ze(i.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return Fe(e,n)}))).then((function(e){return Ie(e)})).then((function(e){return e.map((function(e){return Ue(Ue({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:Ue({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}(e,t),r=Pe(Qt,n,(function(e){var t=e.prevState,r=e.state;n.onStateChange(Yt({prevState:t,state:r,refresh:o},i))})),i=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var n=0,r=e.map((function(e){return Te(Te({},e),{},{items:Ie(e.items).map((function(e){return Te(Te({},e),{},{__autocomplete_id:n++})}))})}));t.dispatch("setCollections",r)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:r}),a=Dt(Yt({props:n,refresh:o,store:r},i));function o(){return kt(Yt({event:new Event("input"),nextState:{isOpen:r.getState().isOpen},props:n,query:r.getState().query,refresh:o,store:r},i))}return n.plugins.forEach((function(e){var n;return null===(n=e.subscribe)||void 0===n?void 0:n.call(e,Yt(Yt({},i),{},{refresh:o,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})}}))})),function(e){var t,n=e.metadata,r=e.environment;if(null===(t=r.navigator)||void 0===t?void 0:t.userAgent.includes("Algolia Crawler")){var i=r.document.createElement("meta"),a=r.document.querySelector("head");i.name="algolia:metadata",setTimeout((function(){i.content=JSON.stringify(n),a.appendChild(i)}),0)}}({metadata:Ut({plugins:n.plugins,options:e}),environment:n.environment}),Yt(Yt({refresh:o},a),i)}function en(e){return{current:e}}function tn(e,t){var n=void 0;return function(){for(var r=arguments.length,i=new Array(r),a=0;a=5&&((i||!e&&5===r)&&(o.push(r,0,i,n),r=6),e&&(o.push(r,e,0,n),r=6)),i=""},l=0;l"===t?(r=1,i=""):i=t+i[0]:a?t===a?a="":i+=t:'"'===t||"'"===t?a=t:">"===t?(s(),r=1):r&&("="===t?(r=5,n=i,i=""):"/"===t&&(r<5||">"===e[l][u+1])?(s(),3===r&&(o=o[0]),r=o,(o=o[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(s(),r=2):i+=t),3===r&&"!--"===i&&(r=4,o=o[0])}return s(),o}(e)),t),arguments,[])).length>1?t:t[0]}var on=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-SubmitIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","20"),n.setAttribute("height","20"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z"),n.appendChild(r),n},sn=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-ClearIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","18"),n.setAttribute("height","18"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"),n.appendChild(r),n},ln=function(e){var t=e.environment.document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("class","aa-LoadingIcon"),t.setAttribute("viewBox","0 0 100 100"),t.setAttribute("width","20"),t.setAttribute("height","20"),t.innerHTML='\n \n',t},un=["ontouchstart","ontouchend","ontouchmove","ontouchcancel"];function cn(e,t,n){e[t]=null===n?"":"number"!=typeof n?n:n+"px"}function dn(e){this._listeners[e.type](e)}function pn(e,t,n){var r,i,a=e[t];if("style"===t)if("string"==typeof n)e.style=n;else if(null===n)e.style="";else for(t in n)a&&n[t]===a[t]||cn(e.style,t,n[t]);else"o"===t[0]&&"n"===t[1]?(r=t!==(t=t.replace(/Capture$/,"")),((i=t.toLowerCase())in e||un.includes(i))&&(t=i),t=t.slice(2),e._listeners||(e._listeners={}),e._listeners[t]=n,n?a||e.addEventListener(t,dn,r):e.removeEventListener(t,dn,r)):"list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&"download"!==t&&"href"!==t&&t in e?e[t]=null==n?"":n:"function"!=typeof n&&"dangerouslySetInnerHTML"!==t&&(null==n||!1===n&&!/^ar/.test(t)?e.removeAttribute(t):e.setAttribute(t,n))}function fn(e){return"onChange"===e?"onInput":e}function mn(e,t){for(var n in t)pn(e,fn(n),t[n])}function hn(e,t){for(var n in t)"o"===n[0]&&"n"===n[1]||pn(e,fn(n),t[n])}var gn=["children"];function vn(e){return function(e){if(Array.isArray(e))return bn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return bn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return bn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function bn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function wn(e){return function(t,n){var r=n.children,i=void 0===r?[]:r,a=yn(n,gn),o=e.document.createElement(t);return mn(o,a),o.append.apply(o,vn(i)),o}}var kn=["autocompleteScopeApi","environment","classNames","getInputProps","getInputPropsCore","onDetachedEscape","state"];function Sn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function En(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function On(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function An(e){for(var t=1;t2&&(o.children=arguments.length>3?Cn.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(a in e.defaultProps)void 0===o[a]&&(o[a]=e.defaultProps[a]);return Wn(e,o,r,i,null)}function Wn(e,t,n,r,i){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==i?++Ln:i};return null==i&&null!=Tn.vnode&&Tn.vnode(a),a}function Un(e){return e.children}function $n(e,t){this.props=e,this.context=t}function Hn(e,t){if(null==t)return e.__?Hn(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t0?Wn(f.type,f.props,f.key,null,f.__v):f)){if(f.__=n,f.__b=n.__b+1,null===(p=v[c])||p&&f.key==p.key&&f.type===p.type)v[c]=void 0;else for(d=0;d0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var n=e[e.length-1];(null==n?void 0:n.isHighlighted)===t.isHighlighted?e[e.length-1]={value:n.value+t.value,isHighlighted:n.isHighlighted}:e.push(t)}}}(n?[{value:n,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split("__/aa-highlight__");r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function dr(e){return function(e){if(Array.isArray(e))return pr(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return pr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return pr(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function pr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n",""":'"',"'":"'"},gr=new RegExp(/\w/i),vr=/&(amp|quot|lt|gt|#39);/g,br=RegExp(vr.source);function yr(e,t){var n,r,i,a=e[t],o=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,s=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return gr.test((i=a.value)&&br.test(i)?i.replace(vr,(function(e){return hr[e]})):i)||s!==o?a.isHighlighted:s}function wr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function kr(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var Dr={clearButton:"aa-ClearButton",detachedCancelButton:"aa-DetachedCancelButton",detachedContainer:"aa-DetachedContainer",detachedFormContainer:"aa-DetachedFormContainer",detachedOverlay:"aa-DetachedOverlay",detachedSearchButton:"aa-DetachedSearchButton",detachedSearchButtonIcon:"aa-DetachedSearchButtonIcon",detachedSearchButtonPlaceholder:"aa-DetachedSearchButtonPlaceholder",form:"aa-Form",input:"aa-Input",inputWrapper:"aa-InputWrapper",inputWrapperPrefix:"aa-InputWrapperPrefix",inputWrapperSuffix:"aa-InputWrapperSuffix",item:"aa-Item",label:"aa-Label",list:"aa-List",loadingIndicator:"aa-LoadingIndicator",panel:"aa-Panel",panelLayout:"aa-PanelLayout aa-Panel--scrollable",root:"aa-Autocomplete",source:"aa-Source",sourceFooter:"aa-SourceFooter",sourceHeader:"aa-SourceHeader",sourceNoResults:"aa-SourceNoResults",submitButton:"aa-SubmitButton"},Mr=function(e,t){var n=e.children;(0,e.render)(n,t)},Fr={createElement:qn,Fragment:Un,render:lr};function zr(e){var t=e.panelPlacement,n=e.container,r=e.form,i=e.environment,a=n.getBoundingClientRect(),o=(i.pageYOffset||i.document.documentElement.scrollTop||i.document.body.scrollTop||0)+a.top+a.height;switch(t){case"start":return{top:o,left:a.left};case"end":return{top:o,right:i.document.documentElement.clientWidth-(a.left+a.width)};case"full-width":return{top:o,left:0,right:0,width:"unset",maxWidth:"unset"};case"input-wrapper-width":var s=r.getBoundingClientRect();return{top:o,left:s.left,right:i.document.documentElement.clientWidth-(s.left+s.width),width:"unset",maxWidth:"unset"};default:throw new Error("[Autocomplete] The `panelPlacement` value ".concat(JSON.stringify(t)," is not valid."))}}function qr(){return qr=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function ai(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function oi(e){for(var t=1;t0;if(!p.value.core.openOnFocus&&!t.query)return n;var r=Boolean(u.current||p.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:Hr,options:e}}))})),h=en(oi({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},p.value.core.initialState)),g={getEnvironmentProps:p.value.renderer.getEnvironmentProps,getFormProps:p.value.renderer.getFormProps,getInputProps:p.value.renderer.getInputProps,getItemProps:p.value.renderer.getItemProps,getLabelProps:p.value.renderer.getLabelProps,getListProps:p.value.renderer.getListProps,getPanelProps:p.value.renderer.getPanelProps,getRootProps:p.value.renderer.getRootProps},v={setActiveItemId:m.value.setActiveItemId,setQuery:m.value.setQuery,setCollections:m.value.setCollections,setIsOpen:m.value.setIsOpen,setStatus:m.value.setStatus,setContext:m.value.setContext,refresh:m.value.refresh},b=s((function(){return an.bind(p.value.renderer.renderer.createElement)})),y=s((function(){return In({autocomplete:m.value,autocompleteScopeApi:v,classNames:p.value.renderer.classNames,environment:p.value.core.environment,isDetached:f.value,placeholder:p.value.core.placeholder,propGetters:g,setIsModalOpen:E,state:h.current,translations:p.value.renderer.translations})}));function w(){mn(y.value.panel,{style:f.value?{}:zr({panelPlacement:p.value.renderer.panelPlacement,container:y.value.root,form:y.value.form,environment:p.value.core.environment})})}function k(e){h.current=e;var t={autocomplete:m.value,autocompleteScopeApi:v,classNames:p.value.renderer.classNames,components:p.value.renderer.components,container:p.value.renderer.container,html:b.value,dom:y.value,panelContainer:f.value?y.value.detachedContainer:p.value.renderer.panelContainer,propGetters:g,state:h.current,renderer:p.value.renderer.renderer},n=!Re(e)&&!u.current&&p.value.renderer.renderNoResults||p.value.renderer.render;!function(e){var t=e.autocomplete,n=e.autocompleteScopeApi,r=e.dom,i=e.propGetters,a=e.state;hn(r.root,i.getRootProps(Ur({state:a,props:t.getRootProps({})},n))),hn(r.input,i.getInputProps(Ur({state:a,props:t.getInputProps({inputElement:r.input}),inputElement:r.input},n))),mn(r.label,{hidden:"stalled"===a.status}),mn(r.loadingIndicator,{hidden:"stalled"!==a.status}),mn(r.clearButton,{hidden:!a.query})}(t),function(e,t){var n=t.autocomplete,r=t.autocompleteScopeApi,i=t.classNames,a=t.html,o=t.dom,s=t.panelContainer,l=t.propGetters,u=t.state,c=t.components,d=t.renderer;if(u.isOpen){s.contains(o.panel)||"loading"===u.status||s.appendChild(o.panel),o.panel.classList.toggle("aa-Panel--stalled","stalled"===u.status);var p=u.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var o=e.source,s=e.items;return d.createElement("section",{key:t,className:i.source,"data-autocomplete-source-id":o.sourceId},o.templates.header&&d.createElement("div",{className:i.sourceHeader},o.templates.header({components:c,createElement:d.createElement,Fragment:d.Fragment,items:s,source:o,state:u,html:a})),o.templates.noResults&&0===s.length?d.createElement("div",{className:i.sourceNoResults},o.templates.noResults({components:c,createElement:d.createElement,Fragment:d.Fragment,source:o,state:u,html:a})):d.createElement("ul",qr({className:i.list},l.getListProps(Ur({state:u,props:n.getListProps({})},r))),s.map((function(e){var t=n.getItemProps({item:e,source:o});return d.createElement("li",qr({key:t.id,className:i.item},l.getItemProps(Ur({state:u,props:t},r))),o.templates.item({components:c,createElement:d.createElement,Fragment:d.Fragment,item:e,state:u,html:a}))}))),o.templates.footer&&d.createElement("div",{className:i.sourceFooter},o.templates.footer({components:c,createElement:d.createElement,Fragment:d.Fragment,items:s,source:o,state:u,html:a})))})),f=d.createElement(d.Fragment,null,d.createElement("div",{className:i.panelLayout},p),d.createElement("div",{className:"aa-GradientBottom"})),m=p.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e(Ur(Ur({children:f,state:u,sections:p,elements:m},d),{},{components:c,html:a},r),o.panel)}else s.contains(o.panel)&&s.removeChild(o.panel)}(n,t)}function S(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i();var t=p.value.renderer,n=t.components,r=ii(t,ri);c.current=Kr(r,p.value.core,{components:ni(n,(function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")})),initialState:h.current},e),l(),a(),m.value.refresh().then((function(){k(h.current)}))}function E(e){requestAnimationFrame((function(){var t=p.value.core.environment.document.body.contains(y.value.detachedOverlay);e!==t&&(e?(p.value.core.environment.document.body.appendChild(y.value.detachedOverlay),p.value.core.environment.document.body.classList.add("aa-Detached"),y.value.input.focus()):(p.value.core.environment.document.body.removeChild(y.value.detachedOverlay),p.value.core.environment.document.body.classList.remove("aa-Detached"),m.value.setQuery(""),m.value.refresh()))}))}return r((function(){var e=m.value.getEnvironmentProps({formElement:y.value.form,panelElement:y.value.panel,inputElement:y.value.input});return mn(p.value.core.environment,e),function(){mn(p.value.core.environment,Object.keys(e).reduce((function(e,t){return oi(oi({},e),{},si({},t,void 0))}),{}))}})),r((function(){var e=f.value?p.value.core.environment.document.body:p.value.renderer.panelContainer,t=f.value?y.value.detachedOverlay:y.value.panel;return f.value&&h.current.isOpen&&E(!0),k(h.current),function(){e.contains(t)&&e.removeChild(t)}})),r((function(){var e=p.value.renderer.container;return e.appendChild(y.value.root),function(){e.removeChild(y.value.root)}})),r((function(){var e=tn((function(e){k(e.state)}),0);return d.current=function(t){var n=t.state,r=t.prevState;(f.value&&r.isOpen!==n.isOpen&&E(n.isOpen),f.value||!n.isOpen||r.isOpen||w(),n.query!==r.query)&&p.value.core.environment.document.querySelectorAll(".aa-Panel--scrollable").forEach((function(e){0!==e.scrollTop&&(e.scrollTop=0)}));e({state:n})},function(){d.current=void 0}})),r((function(){var e=tn((function(){var e=f.value;f.value=p.value.core.environment.matchMedia(p.value.renderer.detachedMediaQuery).matches,e!==f.value?S({}):requestAnimationFrame(w)}),20);return p.value.core.environment.addEventListener("resize",e),function(){p.value.core.environment.removeEventListener("resize",e)}})),r((function(){if(!f.value)return function(){};function e(e){y.value.detachedContainer.classList.toggle("aa-DetachedContainer--modal",e)}function t(t){e(t.matches)}var n=p.value.core.environment.matchMedia(getComputedStyle(p.value.core.environment.document.documentElement).getPropertyValue("--aa-detached-modal-media-query"));e(n.matches);var r=Boolean(n.addEventListener);return r?n.addEventListener("change",t):n.addListener(t),function(){r?n.removeEventListener("change",t):n.removeListener(t)}})),r((function(){return requestAnimationFrame(w),function(){}})),oi(oi({},v),{},{update:S,destroy:function(){i()}})}var ui=n(5742);n(9414);var ci=n(8965),di=ci,pi=(n(8965),function(e){return ci.tokenizer(e).map((function(e){return e.str}))}),fi=di,mi=n(813),hi=n.n(mi),gi=["cmfcmfhighlight"];function vi(){var e,t=(0,c.TH)(),n=(0,c.k6)(),i=(0,le.Z)().siteConfig.baseUrl,a=(0,r.useState)({terms:[],isDocsOrBlog:!1}),o=a[0],s=a[1];return(0,r.useEffect)((function(){var e;if(null!=(e=t.state)&&e.cmfcmfhighlight&&0!==t.state.cmfcmfhighlight.terms.length){s(t.state.cmfcmfhighlight);var r=t.state,i=(r.cmfcmfhighlight,(0,b.Z)(r,gi));n.replace(Object.assign({},t,{state:i}))}}),[null==(e=t.state)?void 0:e.cmfcmfhighlight,n,t]),(0,r.useEffect)((function(){if(0!==o.terms.length){var e=o.isDocsOrBlog?document.getElementsByTagName("article")[0]:document.getElementsByTagName("main")[0];if(e){var t=new(hi())(e),n={ignoreJoiners:!0};return t.mark(o.terms,n),function(){return t.unmark(n)}}}}),[o,i]),null}var bi=n(8084),yi=n(3320);function wi(e){var t=e.document.sectionRoute.split("#"),n=t[0],r=t[1],i=n;return r&&(i+="#"+r),i}var ki={documents:[],index:fi((function(){this.ref("id"),this.field("title"),this.field("content")}))};function Si(e,t){return Ei.apply(this,arguments)}function Ei(){return(Ei=xe(Se().mark((function e(t,n){var r,i;return Se().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=1,e.next=4,fetch(t+"search-index-"+n+".json");case 4:if((i=e.sent).ok){e.next=7;break}return e.abrupt("return",ki);case 7:return e.next=9,i.json();case 9:r=e.sent,e.next=15;break;case 12:return e.prev=12,e.t0=e.catch(1),e.abrupt("return",ki);case 15:return e.abrupt("return",{documents:r.documents,index:fi.Index.load(r.index)});case 18:return e.abrupt("return",Promise.resolve(ki));case 19:case"end":return e.stop()}}),e,null,[[1,12]])})))).apply(this,arguments)}var xi=function(){var e=(0,j.Z)(),t=(0,r.useState)((function(){return!!e&&"dark"===document.documentElement.getAttribute("data-theme")})),n=t[0],i=t[1];(0,r.useEffect)((function(){var e=new MutationObserver((function(){i("dark"===document.documentElement.getAttribute("data-theme"))}));return e.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),function(){return e.disconnect()}}),[]);var a=(0,le.Z)().siteConfig.baseUrl,o=(0,bi.eZ)("@cmfcmf/docusaurus-search-local"),s=o.titleBoost,l=o.contentBoost,d=o.parentCategoriesBoost,p=o.indexDocSidebarParentCategories,f=(0,c.k6)(),m=(0,yi._q)().tags,h=(0,r.useRef)(m);(0,r.useEffect)((function(){h.current=m}),[m]);var g=(0,r.useRef)({}),v=function(){var e=xe(Se().mark((function e(t){var n,r,i;return Se().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=g.current[t],e.t0=null==n?void 0:n.state,e.next="ready"===e.t0?4:void 0===e.t0?5:"loading"===e.t0?12:13;break;case 4:return e.abrupt("return",n);case 5:return r=[],g.current[t]={state:"loading",callbacks:r},e.next=9,Si(a,t);case 9:return i=e.sent,r.forEach((function(e){return e(i)})),e.abrupt("return",g.current[t]=Object.assign({state:"ready"},i));case 12:return e.abrupt("return",new Promise((function(e){n.callbacks.push(e)})));case 13:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),b=(0,u.I)({message:"cmfcmf/d-s-l.searchBar.placeholder",description:"Placeholder shown in the searchbar"}),y=(0,r.useRef)(null),w=(0,r.useRef)(null);return(0,r.useEffect)((function(){if(y.current)return w.current=li({container:y.current,placeholder:b,renderer:{createElement:r.createElement,Fragment:r.Fragment},render:function(e,t){var n=e.children;(0,_e.render)(n,t)},navigator:{navigate:function(e){var t=e.item,n=e.itemUrl;f.push(n,{cmfcmfhighlight:{terms:t.terms,isDocsOrBlog:"docs"===t.document.type||"blog"===t.document.type}})}},detachedMediaQuery:"",defaultActiveItemId:0,translations:{clearButtonTitle:(0,u.I)({message:"cmfcmf/d-s-l.searchBar.clearButtonTitle",description:"Title of the button to clear the current search input"}),detachedCancelButtonText:(0,u.I)({message:"cmfcmf/d-s-l.searchBar.detachedCancelButtonText",description:"Text of the button to close the detached search window"}),submitButtonTitle:(0,u.I)({message:"cmfcmf/d-s-l.searchBar.submitButtonTitle",description:"Title of the button to submit a new search"})},getSources:function(e){var t=e.query;return[{sourceId:"search-results",templates:{item:function(e){var t=e.item,n=wi(t);return r.createElement("a",{href:n,className:"aa-ItemLink",onClick:function(e){e.preventDefault(),f.push(n,{cmfcmfhighlight:{terms:t.terms,isDocsOrBlog:"docs"===t.document.type||"blog"===t.document.type}})}},r.createElement("div",{className:"aa-ItemContent"},r.createElement("div",{className:"aa-ItemContentBody"},r.createElement("div",{className:"aa-ItemContentTitle"},t.document.sectionTitle),t.document.pageTitle!==t.document.sectionTitle&&r.createElement("div",{className:"aa-ItemContentDescription"},t.document.pageTitle))),r.createElement("div",{className:"aa-ItemActions"},r.createElement("button",{className:"aa-ItemActionButton aa-DesktopOnly aa-ActiveOnly",type:"button",title:"Select"},r.createElement("svg",{viewBox:"0 0 24 24",width:"20",height:"20",fill:"currentColor"},r.createElement("path",{d:"M18.984 6.984h2.016v6h-15.188l3.609 3.609-1.406 1.406-6-6 6-6 1.406 1.406-3.609 3.609h13.172v-4.031z"})))))},noResults:function(){return r.createElement("div",{className:"aa-ItemContent"},r.createElement("div",{className:"aa-ItemContentBody"},(0,u.I)({message:"cmfcmf/d-s-l.searchBar.noResults",description:"message shown if no results are found"})))}},getItemUrl:function(e){return wi(e.item)},getItems:function(){return xe(Se().mark((function e(){var n,r,i;return Se().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=h.current,e.next=3,Promise.all(n.map((function(e){return v(e)})));case 3:return r=e.sent,i=pi(t),e.abrupt("return",r.flatMap((function(e){var t=e.index,n=e.documents;return t.query((function(e){e.term(i,{fields:["title"],boost:s}),e.term(i,{fields:["title"],boost:s,wildcard:fi.Query.wildcard.TRAILING}),e.term(i,{fields:["content"],boost:l}),e.term(i,{fields:["content"],boost:l,wildcard:fi.Query.wildcard.TRAILING}),p&&(e.term(i,{fields:["sidebarParentCategories"],boost:d}),e.term(i,{fields:["sidebarParentCategories"],boost:d,wildcard:fi.Query.wildcard.TRAILING}))})).slice(0,8).map((function(e){return{document:n.find((function(t){return t.id.toString()===e.ref})),score:e.score,terms:i}}))})).sort((function(e,t){return t.score-e.score})).slice(0,8));case 6:case"end":return e.stop()}}),e)})))()}}]}}),function(){var e;return null==(e=w.current)?void 0:e.destroy()}}),[]),r.createElement(r.Fragment,null,r.createElement(ui.Z,null,r.createElement("body",{"data-theme":n?"dark":"light"})),r.createElement(vi,null),r.createElement("div",{className:"dsla-search-wrapper"},r.createElement("div",{className:"dsla-search-field",ref:y,"data-tags":m.join(",")})))},_i="searchBox_ZlJk";function Oi(e){var t=e.children,n=e.className;return r.createElement("div",{className:(0,i.Z)(n,_i)},t)}var Ai=n(4104),Pi=n(4575),Ii=["docId","label","docsPluginId"];var Ci=["sidebarId","label","docsPluginId"];var Ti=["label","to","docsPluginId"];var Li=n(373),Ri=["mobile","docsPluginId","dropdownActiveClassDisabled","dropdownItemsBefore","dropdownItemsAfter"],Ni=function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))};var Bi={default:ae,localeDropdown:function(e){var t=e.mobile,n=e.dropdownItemsBefore,i=e.dropdownItemsAfter,a=(0,b.Z)(e,we),o=(0,le.Z)().i18n,s=o.currentLocale,l=o.locales,c=o.localeConfigs,d=(0,ge.l)(),p=l.map((function(e){var n="pathname://"+d.createUrl({locale:e,fullyQualified:!1});return{label:c[e].label,to:n,target:"_self",autoAddBaseUrl:!1,className:e===s?t?"menu__link--active":"dropdown__link--active":""}})),f=[].concat(n,p,i),m=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):c[s].label;return r.createElement(he,(0,v.Z)({},a,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(be,{className:ye}),m),items:f}))},search:function(e){var t=e.mobile,n=e.className;return t?null:r.createElement(Oi,{className:n},r.createElement(xi,null))},dropdown:he,html:function(e){var t=e.value,n=e.className,a=e.mobile,o=void 0!==a&&a,s=e.isDropdownItem,l=void 0!==s&&s,u=l?"li":"div";return r.createElement(u,{className:(0,i.Z)({navbar__item:!o&&!l,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){var t=e.docId,n=e.label,i=e.docsPluginId,a=(0,b.Z)(e,Ii),o=(0,Ai.Iw)(i).activeDoc,s=(0,Pi.vY)(t,i);return null===s?null:r.createElement(ae,(0,v.Z)({exact:!0},a,{isActive:function(){return(null==o?void 0:o.path)===s.path||!(null==o||!o.sidebar)&&o.sidebar===s.sidebar},label:null!=n?n:s.id,to:s.path}))},docSidebar:function(e){var t=e.sidebarId,n=e.label,i=e.docsPluginId,a=(0,b.Z)(e,Ci),o=(0,Ai.Iw)(i).activeDoc,s=(0,Pi.oz)(t,i).link;if(!s)throw new Error('DocSidebarNavbarItem: Sidebar with ID "'+t+"\" doesn't have anything to be linked to.");return r.createElement(ae,(0,v.Z)({exact:!0},a,{isActive:function(){return(null==o?void 0:o.sidebar)===t},label:null!=n?n:s.label,to:s.path}))},docsVersion:function(e){var t=e.label,n=e.to,i=e.docsPluginId,a=(0,b.Z)(e,Ti),o=(0,Pi.lO)(i)[0],s=null!=t?t:o.label,l=null!=n?n:function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))}(o).path;return r.createElement(ae,(0,v.Z)({},a,{label:s,to:l}))},docsVersionDropdown:function(e){var t=e.mobile,n=e.docsPluginId,i=e.dropdownActiveClassDisabled,a=e.dropdownItemsBefore,o=e.dropdownItemsAfter,s=(0,b.Z)(e,Ri),l=(0,Ai.Iw)(n),c=(0,Ai.gB)(n),d=(0,Li.J)(n).savePreferredVersionName,p=c.map((function(e){var t,n=null!=(t=l.alternateDocVersions[e.name])?t:Ni(e);return{label:e.label,to:n.path,isActive:function(){return e===l.activeVersion},onClick:function(){return d(e.name)}}})),f=[].concat(a,p,o),m=(0,Pi.lO)(n)[0],h=t&&f.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):m.label,g=t&&f.length>1?void 0:Ni(m).path;return f.length<=1?r.createElement(ae,(0,v.Z)({},s,{mobile:t,label:h,to:g,isActive:i?function(){return!1}:void 0})):r.createElement(he,(0,v.Z)({},s,{mobile:t,label:h,to:g,items:f,isActive:i?function(){return!1}:void 0}))}},ji=Bi,Di=["type"];function Mi(e){var t=e.type,n=(0,b.Z)(e,Di),i=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=ji[i];if(!a)throw new Error('No NavbarItem component found for type "'+t+'".');return r.createElement(a,n)}function Fi(){var e=(0,O.e)(),t=(0,h.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map((function(t,n){return r.createElement(Mi,(0,v.Z)({mobile:!0},t,{onClick:function(){return e.toggle()},key:n}))})))}function zi(e){return r.createElement("button",(0,v.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function qi(){var e=0===(0,h.L)().navbar.items.length,t=R();return r.createElement(r.Fragment,null,!e&&r.createElement(zi,{onClick:function(){return t.hide()}}),t.content)}function Wi(){var e,t=(0,O.e)();return void 0===(e=t.shown)&&(e=!0),(0,r.useEffect)((function(){return document.body.style.overflow=e?"hidden":"visible",function(){document.body.style.overflow="visible"}}),[e]),t.shouldRender?r.createElement(N,{header:r.createElement(G,null),primaryMenu:r.createElement(Fi,null),secondaryMenu:r.createElement(qi,null)}):null}var Ui="navbarHideable_m1mJ",$i="navbarHidden_jGov";function Hi(e){return r.createElement("div",(0,v.Z)({role:"presentation"},e,{className:(0,i.Z)("navbar-sidebar__backdrop",e.className)}))}function Gi(e){var t=e.children,n=(0,h.L)().navbar,a=n.hideOnScroll,o=n.style,s=(0,O.e)(),l=function(e){var t=(0,r.useState)(e),n=t[0],i=t[1],a=(0,r.useRef)(!1),o=(0,r.useRef)(0),s=(0,r.useCallback)((function(e){null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,A.RF)((function(t,n){var r=t.scrollY;if(e)if(r=s?i(!1):r+u0&&r.createElement(ua,{links:n}),logo:i&&r.createElement(fa,{logo:i}),copyright:t&&r.createElement(ma,{copyright:t})})}var va=r.memo(ga),ba=n(7094),ya=(0,P.Qc)([B.S,g.pl,ba.z,A.OC,Li.L5,o.VC,function(e){var t=e.children;return r.createElement(I.n2,null,r.createElement(O.M,null,r.createElement(T,null,t)))}]);function wa(e){var t=e.children;return r.createElement(ya,null,t)}function ka(e){var t=e.error,n=e.tryAgain;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again when the page crashed"},"Try again"))))))}var Sa="mainWrapper_z2l0";function Ea(e){var t=e.children,n=e.noFooter,u=e.wrapperClassName,c=e.title,d=e.description;return(0,l.t)(),r.createElement(wa,null,r.createElement(o.d,{title:c,description:d}),r.createElement(m,null),r.createElement(_,null),r.createElement(ea,null),r.createElement("div",{className:(0,i.Z)(s.k.wrapper.main,Sa,u)},r.createElement(a.Z,{fallback:function(e){return r.createElement(ka,e)}},t)),!n&&r.createElement(va,null))}},1327:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(3117),i=n(102),a=n(7294),o=n(9960),s=n(4996),l=n(2263),u=n(6668),c=n(941),d=["imageClassName","titleClassName"];function p(e){var t=e.logo,n=e.alt,r=e.imageClassName,i={light:(0,s.Z)(t.src),dark:(0,s.Z)(t.srcDark||t.src)},o=a.createElement(c.Z,{className:t.className,sources:i,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},o):o}function f(e){var t,n=(0,l.Z)().siteConfig.title,c=(0,u.L)().navbar,f=c.title,m=c.logo,h=e.imageClassName,g=e.titleClassName,v=(0,i.Z)(e,d),b=(0,s.Z)((null==m?void 0:m.href)||"/"),y=f?"":n,w=null!=(t=null==m?void 0:m.alt)?t:y;return a.createElement(o.Z,(0,r.Z)({to:b},v,(null==m?void 0:m.target)&&{target:m.target}),m&&a.createElement(p,{logo:m,alt:w,imageClassName:h}),null!=f&&a.createElement("b",{className:g},f))}},197:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(7294),i=n(5742);function a(e){var t=e.locale,n=e.version,a=e.tag,o=t;return r.createElement(i.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}),o&&r.createElement("meta",{name:"docsearch:language",content:o}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),a&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))}},941:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(3117),i=n(102),a=n(7294),o=n(4334),s=n(2389),l=n(2949),u={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"},c=["sources","className","alt"];function d(e){var t=(0,s.Z)(),n=(0,l.I)().colorMode,d=e.sources,p=e.className,f=e.alt,m=(0,i.Z)(e,c),h=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,h.map((function(e){return a.createElement("img",(0,r.Z)({key:e,src:d[e],alt:f,className:(0,o.Z)(u.themedImage,u["themedImage--"+e],p)},m))})))}},6043:function(e,t,n){"use strict";n.d(t,{u:function(){return u},z:function(){return v}});var r=n(3117),i=n(102),a=n(7294),o=n(412),s=["collapsed"],l=["lazy"];function u(e){var t=e.initialState,n=(0,a.useState)(null!=t&&t),r=n[0],i=n[1],o=(0,a.useCallback)((function(){i((function(e){return!e}))}),[]);return{collapsed:r,setCollapsed:i,toggleCollapsed:o}}var c={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){var n=t?c:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){var t=e.collapsibleRef,n=e.collapsed,r=e.animation,i=(0,a.useRef)(!1);(0,a.useEffect)((function(){var e,a=t.current;function o(){var e,t,n=a.scrollHeight,i=null!=(e=null==r?void 0:r.duration)?e:function(e){var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}(n);return{transition:"height "+i+"ms "+(null!=(t=null==r?void 0:r.easing)?t:"ease-in-out"),height:n+"px"}}function s(){var e=o();a.style.transition=e.transition,a.style.height=e.height}if(!i.current)return p(a,n),void(i.current=!0);return a.style.willChange="height",e=requestAnimationFrame((function(){n?(s(),requestAnimationFrame((function(){a.style.height=c.height,a.style.overflow=c.overflow}))):(a.style.display="block",requestAnimationFrame((function(){s()})))})),function(){return cancelAnimationFrame(e)}}),[t,n,r])}function m(e){if(!o.Z.canUseDOM)return e?c:d}function h(e){var t=e.as,n=void 0===t?"div":t,r=e.collapsed,i=e.children,o=e.animation,s=e.onCollapseTransitionEnd,l=e.className,u=e.disableSSRStyle,c=(0,a.useRef)(null);return f({collapsibleRef:c,collapsed:r,animation:o}),a.createElement(n,{ref:c,style:u?void 0:m(r),onTransitionEnd:function(e){"height"===e.propertyName&&(p(c.current,r),null==s||s(r))},className:l},i)}function g(e){var t=e.collapsed,n=(0,i.Z)(e,s),o=(0,a.useState)(!t),l=o[0],u=o[1],c=(0,a.useState)(t),d=c[0],p=c[1];return(0,a.useLayoutEffect)((function(){t||u(!0)}),[t]),(0,a.useLayoutEffect)((function(){l&&p(t)}),[l,t]),l?a.createElement(h,(0,r.Z)({},n,{collapsed:d})):null}function v(e){var t=e.lazy,n=(0,i.Z)(e,l),r=t?g:h;return a.createElement(r,n)}},9689:function(e,t,n){"use strict";n.d(t,{nT:function(){return m},pl:function(){return f}});var r=n(7294),i=n(2389),a=n(12),o=n(4700),s=n(6668),l=(0,a.W)("docusaurus.announcement.dismiss"),u=(0,a.W)("docusaurus.announcement.id"),c=function(){return"true"===l.get()},d=function(e){return l.set(String(e))},p=r.createContext(null);function f(e){var t=e.children,n=function(){var e=(0,s.L)().announcementBar,t=(0,i.Z)(),n=(0,r.useState)((function(){return!!t&&c()})),a=n[0],o=n[1];(0,r.useEffect)((function(){o(c())}),[]);var l=(0,r.useCallback)((function(){d(!0),o(!0)}),[]);return(0,r.useEffect)((function(){if(e){var t=e.id,n=u.get();"annoucement-bar"===n&&(n="announcement-bar");var r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}}),[e]),(0,r.useMemo)((function(){return{isActive:!!e&&!a,close:l}}),[e,a,l])}();return r.createElement(p.Provider,{value:n},t)}function m(){var e=(0,r.useContext)(p);if(!e)throw new o.i6("AnnouncementBarProvider");return e}},2949:function(e,t,n){"use strict";n.d(t,{I:function(){return g},S:function(){return h}});var r=n(7294),i=n(412),a=n(4700),o=n(12),s=n(6668),l=r.createContext(void 0),u="theme",c=(0,o.W)(u),d="light",p="dark",f=function(e){return e===p?p:d};function m(){var e=(0,s.L)().colorMode,t=e.defaultMode,n=e.disableSwitch,a=e.respectPrefersColorScheme,o=(0,r.useState)(function(e){return i.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e)}(t)),l=o[0],m=o[1];(0,r.useEffect)((function(){n&&c.del()}),[n]);var h=(0,r.useCallback)((function(e,n){void 0===n&&(n={});var r=n.persist,i=void 0===r||r;e?(m(e),i&&function(e){c.set(f(e))}(e)):(m(a?window.matchMedia("(prefers-color-scheme: dark)").matches?p:d:t),c.del())}),[a,t]);(0,r.useEffect)((function(){document.documentElement.setAttribute("data-theme",f(l))}),[l]),(0,r.useEffect)((function(){if(!n){var e=function(e){if(e.key===u){var t=c.get();null!==t&&h(f(t))}};return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}}}),[n,h]);var g=(0,r.useRef)(!1);return(0,r.useEffect)((function(){if(!n||a){var e=window.matchMedia("(prefers-color-scheme: dark)"),t=function(){window.matchMedia("print").matches||g.current?g.current=window.matchMedia("print").matches:h(null)};return e.addListener(t),function(){return e.removeListener(t)}}}),[h,n,a]),(0,r.useMemo)((function(){return{colorMode:l,setColorMode:h,get isDarkTheme(){return l===p},setLightTheme:function(){h(d)},setDarkTheme:function(){h(p)}}}),[l,h])}function h(e){var t=e.children,n=m();return r.createElement(l.Provider,{value:n},t)}function g(){var e=(0,r.useContext)(l);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:function(e,t,n){"use strict";n.d(t,{J:function(){return y},L5:function(){return v},Oh:function(){return w}});var r=n(7294),i=n(4104),a=n(9935),o=n(6668),s=n(4575),l=n(4700),u=n(12),c=function(e){return"docs-preferred-version-"+e},d=function(e,t,n){(0,u.W)(c(e),{persistence:t}).set(n)},p=function(e,t){return(0,u.W)(c(e),{persistence:t}).get()},f=function(e,t){(0,u.W)(c(e),{persistence:t}).del()};var m=r.createContext(null);function h(){var e=(0,i._r)(),t=(0,o.L)().docs.versionPersistence,n=(0,r.useMemo)((function(){return Object.keys(e)}),[e]),a=(0,r.useState)((function(){return function(e){return Object.fromEntries(e.map((function(e){return[e,{preferredVersionName:null}]})))}(n)})),s=a[0],l=a[1];return(0,r.useEffect)((function(){l(function(e){var t=e.pluginIds,n=e.versionPersistence,r=e.allDocsData;return Object.fromEntries(t.map((function(e){return[e,(t=e,i=p(t,n),r[t].versions.some((function(e){return e.name===i}))?{preferredVersionName:i}:(f(t,n),{preferredVersionName:null}))];var t,i})))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]),[s,(0,r.useMemo)((function(){return{savePreferredVersion:function(e,n){d(e,t,n),l((function(t){var r;return Object.assign({},t,((r={})[e]={preferredVersionName:n},r))}))}}}),[t])]}function g(e){var t=e.children,n=h();return r.createElement(m.Provider,{value:n},t)}function v(e){var t=e.children;return s.cE?r.createElement(g,null,t):r.createElement(r.Fragment,null,t)}function b(){var e=(0,r.useContext)(m);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function y(e){var t;void 0===e&&(e=a.m);var n=(0,i.zh)(e),o=b(),s=o[0],l=o[1],u=s[e].preferredVersionName;return{preferredVersion:null!=(t=n.versions.find((function(e){return e.name===u})))?t:null,savePreferredVersionName:(0,r.useCallback)((function(t){l.savePreferredVersion(e,t)}),[l,e])}}function w(){var e=(0,i._r)(),t=b()[0];var n=Object.keys(e);return Object.fromEntries(n.map((function(n){return[n,(r=n,a=e[r],o=t[r].preferredVersionName,null!=(i=a.versions.find((function(e){return e.name===o})))?i:null)];var r,i,a,o})))}},1116:function(e,t,n){"use strict";n.d(t,{V:function(){return l},b:function(){return s}});var r=n(7294),i=n(4700),a=Symbol("EmptyContext"),o=r.createContext(a);function s(e){var t=e.children,n=e.name,i=e.items,a=(0,r.useMemo)((function(){return n&&i?{name:n,items:i}:null}),[n,i]);return r.createElement(o.Provider,{value:a},t)}function l(){var e=(0,r.useContext)(o);if(e===a)throw new i.i6("DocsSidebarProvider");return e}},2961:function(e,t,n){"use strict";n.d(t,{M:function(){return p},e:function(){return f}});var r=n(7294),i=n(3102),a=n(7524),o=n(6775),s=n(4700);function l(e){!function(e){var t=(0,o.k6)(),n=(0,s.zX)(e);(0,r.useEffect)((function(){return t.block((function(e,t){return n(e,t)}))}),[t,n])}((function(t,n){if("POP"===n)return e(t,n)}))}var u=n(6668),c=r.createContext(void 0);function d(){var e,t=(e=(0,i.HY)(),0===(0,u.L)().navbar.items.length&&!e.component),n=(0,a.i)(),o=!t&&"mobile"===n,s=(0,r.useState)(!1),c=s[0],d=s[1];l((function(){if(c)return d(!1),!1}));var p=(0,r.useCallback)((function(){d((function(e){return!e}))}),[]);return(0,r.useEffect)((function(){"desktop"===n&&d(!1)}),[n]),(0,r.useMemo)((function(){return{disabled:t,shouldRender:o,toggle:p,shown:c}}),[t,o,p,c])}function p(e){var t=e.children,n=d();return r.createElement(c.Provider,{value:n},t)}function f(){var e=r.useContext(c);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3102:function(e,t,n){"use strict";n.d(t,{HY:function(){return s},Zo:function(){return l},n2:function(){return o}});var r=n(7294),i=n(4700),a=r.createContext(null);function o(e){var t=e.children,n=(0,r.useState)({component:null,props:null});return r.createElement(a.Provider,{value:n},t)}function s(){var e=(0,r.useContext)(a);if(!e)throw new i.i6("NavbarSecondaryMenuContentProvider");return e[0]}function l(e){var t=e.component,n=e.props,o=(0,r.useContext)(a);if(!o)throw new i.i6("NavbarSecondaryMenuContentProvider");var s=o[1],l=(0,i.Ql)(n);return(0,r.useEffect)((function(){s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((function(){return function(){return s({component:null,props:null})}}),[s]),null}},7094:function(e,t,n){"use strict";n.d(t,{U:function(){return u},z:function(){return l}});var r=n(7294),i=n(12),a=n(4700),o="docusaurus.tab.",s=r.createContext(void 0);function l(e){var t=e.children,n=function(){var e=(0,r.useState)({}),t=e[0],n=e[1],a=(0,r.useCallback)((function(e,t){(0,i.W)("docusaurus.tab."+e).set(t)}),[]);(0,r.useEffect)((function(){try{var e={};(0,i._)().forEach((function(t){if(t.startsWith(o)){var n=t.substring(o.length);e[n]=(0,i.W)(t).get()}})),n(e)}catch(t){console.error(t)}}),[]);var s=(0,r.useCallback)((function(e,t){n((function(n){var r;return Object.assign({},n,((r={})[e]=t,r))})),a(e,t)}),[a]);return(0,r.useMemo)((function(){return{tabGroupChoices:t,setTabGroupChoices:s}}),[t,s])}();return r.createElement(s.Provider,{value:n},t)}function u(){var e=(0,r.useContext)(s);if(null==e)throw new a.i6("TabGroupChoiceProvider");return e}},9727:function(e,t,n){"use strict";n.d(t,{h:function(){return i},t:function(){return a}});var r=n(7294),i="navigation-with-keyboard";function a(){(0,r.useEffect)((function(){function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(i),"mousedown"===e.type&&document.body.classList.remove(i)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),function(){document.body.classList.remove(i),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:function(e,t,n){"use strict";n.d(t,{i:function(){return u}});var r=n(7294),i=n(412),a="desktop",o="mobile",s="ssr";function l(){return i.Z.canUseDOM?window.innerWidth>996?a:o:s}function u(){var e=(0,r.useState)((function(){return l()})),t=e[0],n=e[1];return(0,r.useEffect)((function(){function e(){n(l())}return window.addEventListener("resize",e),function(){window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),t}},5281:function(e,t,n){"use strict";n.d(t,{k:function(){return r}});var r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:function(e){return"theme-admonition-"+e}},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:function(e){return"theme-doc-sidebar-item-category-level-"+e},docSidebarItemLinkLevel:function(e){return"theme-doc-sidebar-item-link-level-"+e}},blog:{}}},4575:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Wl:function(){return m},_F:function(){return g},cE:function(){return f},hI:function(){return k},lO:function(){return b},vY:function(){return w},oz:function(){return y},s1:function(){return v}});var a=n(7294),o=n(6775),s=n(8790),l=n(4104),u=n(373),c=n(1116),d=n(7392),p=n(8596),f=!!l._r;function m(e){if(e.href)return e.href;for(var t,n=i(e.items);!(t=n()).done;){var r=t.value;if("link"===r.type)return r.href;if("category"===r.type){var a=m(r);if(a)return a}}}var h=function(e,t){return void 0!==e&&(0,p.Mg)(e,t)};function g(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||function(e,t){return e.some((function(e){return g(e,t)}))}(e.items,t))}function v(){var e,t=(0,c.V)(),n=(0,o.TH)().pathname;if(!1===(null==(e=(0,l.gA)())?void 0:e.pluginData.breadcrumbs)||!t)return null;var r=[];return function e(t){for(var a,o=i(t);!(a=o()).done;){var s=a.value;if("category"===s.type&&((0,p.Mg)(s.href,n)||e(s.items))||"link"===s.type&&(0,p.Mg)(s.href,n))return r.push(s),!0}return!1}(t.items),r.reverse()}function b(e){var t=(0,l.Iw)(e).activeVersion,n=(0,u.J)(e).preferredVersion,r=(0,l.yW)(e);return(0,a.useMemo)((function(){return(0,d.j)([t,n,r].filter(Boolean))}),[t,n,r])}function y(e,t){var n=b(t);return(0,a.useMemo)((function(){var t=n.flatMap((function(e){return e.sidebars?Object.entries(e.sidebars):[]})),r=t.find((function(t){return t[0]===e}));if(!r)throw new Error("Can't find any sidebar with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((function(e){return e.name})).join(", ")+'".\n Available sidebar ids are:\n - '+Object.keys(t).join("\n- "));return r[1]}),[e,n])}function w(e,t){var n=b(t);return(0,a.useMemo)((function(){var t=n.flatMap((function(e){return e.docs})),r=t.find((function(t){return t.id===e}));if(!r){if(n.flatMap((function(e){return e.draftIds})).includes(e))return null;throw new Error("DocNavbarItem: couldn't find any doc with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((function(e){return e.name})).join(", ")+'".\nAvailable doc ids are:\n- '+(0,d.j)(t.map((function(e){return e.id}))).join("\n- "))}return r}),[e,n])}function k(e){var t=e.route,n=e.versionMetadata,r=(0,o.TH)(),i=t.routes,a=i.find((function(e){return(0,o.LX)(r.pathname,e)}));if(!a)return null;var l=a.sidebar,u=l?n.docsSidebars[l]:void 0;return{docElement:(0,s.H)(i),sidebarName:l,sidebarItems:u}}},7392:function(e,t,n){"use strict";function r(e,t){return void 0===t&&(t=function(e,t){return e===t}),e.filter((function(n,r){return e.findIndex((function(e){return t(e,n)}))!==r}))}function i(e){return Array.from(new Set(e))}n.d(t,{j:function(){return i},l:function(){return r}})},1944:function(e,t,n){"use strict";n.d(t,{FG:function(){return p},d:function(){return c},VC:function(){return f}});var r=n(7294),i=n(7459),a=n(5742),o=n(226);function s(){var e=r.useContext(o._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(4996),u=n(2263);function c(e){var t=e.title,n=e.description,i=e.keywords,o=e.image,s=e.children,c=function(e){var t=(0,u.Z)().siteConfig,n=t.title,r=t.titleDelimiter;return null!=e&&e.trim().length?e.trim()+" "+r+" "+n:n}(t),d=(0,l.C)().withBaseUrl,p=o?d(o,{absolute:!0}):void 0;return r.createElement(a.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),i&&r.createElement("meta",{name:"keywords",content:Array.isArray(i)?i.join(","):i}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),s)}var d=r.createContext(void 0);function p(e){var t=e.className,n=e.children,o=r.useContext(d),s=(0,i.Z)(o,t);return r.createElement(d.Provider,{value:s},r.createElement(a.Z,null,r.createElement("html",{className:s})),n)}function f(e){var t=e.children,n=s(),a="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,""),o="plugin-id-"+n.plugin.id;return r.createElement(p,{className:(0,i.Z)(a,o)},t)}},4700:function(e,t,n){"use strict";n.d(t,{i6:function(){return m},Qc:function(){return g},zX:function(){return p},D9:function(){return f},Ql:function(){return h}});var r=n(7802),i=n(1073);function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}var o=n(9817);function s(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function l(e,t,n){return l=s()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&(0,o.Z)(i,n.prototype),i},l.apply(null,arguments)}function u(e){var t="function"==typeof Map?new Map:void 0;return u=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return l(e,arguments,a(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,o.Z)(r,e)},u(e)}var c=n(7294),d=n(412).Z.canUseDOM?c.useLayoutEffect:c.useEffect;function p(e){var t=(0,c.useRef)(e);return d((function(){t.current=e}),[e]),(0,c.useCallback)((function(){return t.current.apply(t,arguments)}),[])}function f(e){var t=(0,c.useRef)();return d((function(){t.current=e})),t.current}var m=function(e){function t(t,n){var i,a,o,s,l;return(l=e.call(this)||this).name="ReactContextError",l.message="Hook "+(null!=(i=null==(a=l.stack)||null==(o=a.split("\n")[1])||null==(s=o.match((0,r.Z)(/at (?:\w+\.)?(\w+)/,{name:1})))?void 0:s.groups.name)?i:"")+" is called outside the <"+t+">. "+(null!=n?n:""),l}return(0,i.Z)(t,e),t}(u(Error));function h(e){var t=Object.entries(e);return t.sort((function(e,t){return e[0].localeCompare(t[0])})),(0,c.useMemo)((function(){return e}),t.flat())}function g(e){return function(t){var n=t.children;return c.createElement(c.Fragment,null,e.reduceRight((function(e,t){return c.createElement(t,null,e)}),n))}}},8596:function(e,t,n){"use strict";n.d(t,{Mg:function(){return o},Ns:function(){return s}});var r=n(7294),i=n(723),a=n(2263);function o(e,t){var n=function(e){var t;return null==(t=!e||e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}function s(){var e=(0,a.Z)().siteConfig.baseUrl;return(0,r.useMemo)((function(){return function(e){var t=e.baseUrl;function n(e){return e.path===t&&!0===e.exact}function r(e){return e.path===t&&!e.exact}return function e(t){if(0!==t.length)return t.find(n)||e(t.filter(r).flatMap((function(e){var t;return null!=(t=e.routes)?t:[]})))}(e.routes)}({routes:i.Z,baseUrl:e})}),[e])}},2466:function(e,t,n){"use strict";n.d(t,{Ct:function(){return f},OC:function(){return l},RF:function(){return d},o5:function(){return p}});var r=n(7294),i=n(412),a=n(2389),o=n(4700);var s=r.createContext(void 0);function l(e){var t,n=e.children,i=(t=(0,r.useRef)(!0),(0,r.useMemo)((function(){return{scrollEventsEnabledRef:t,enableScrollEvents:function(){t.current=!0},disableScrollEvents:function(){t.current=!1}}}),[]));return r.createElement(s.Provider,{value:i},n)}function u(){var e=(0,r.useContext)(s);if(null==e)throw new o.i6("ScrollControllerProvider");return e}var c=function(){return i.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null};function d(e,t){void 0===t&&(t=[]);var n=u().scrollEventsEnabledRef,i=(0,r.useRef)(c()),a=(0,o.zX)(e);(0,r.useEffect)((function(){var e=function(){if(n.current){var e=c();a(e,i.current),i.current=e}},t={passive:!0};return e(),window.addEventListener("scroll",e,t),function(){return window.removeEventListener("scroll",e,t)}}),[a,n].concat(t))}function p(){var e,t,n,i=u(),a=(e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((function(t){e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((function(){var t=e.current,n=t.elem,r=t.top;if(!n)return{restored:!1};var i=n.getBoundingClientRect().top-r;return i&&window.scrollBy({left:0,top:i}),e.current={elem:null,top:0},{restored:0!==i}}),[]),(0,r.useMemo)((function(){return{save:t,restore:n}}),[n,t])),o=(0,r.useRef)(void 0),s=(0,r.useCallback)((function(e){a.save(e),i.disableScrollEvents(),o.current=function(){var e=a.restore().restored;if(o.current=void 0,e){window.addEventListener("scroll",(function e(){i.enableScrollEvents(),window.removeEventListener("scroll",e)}))}else i.enableScrollEvents()}}),[i,a]);return(0,r.useLayoutEffect)((function(){null==o.current||o.current()})),{blockElementScrollPositionUntilNextRender:s}}function f(){var e=(0,r.useRef)(null),t=(0,a.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:function(n){e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),function(){}}(n):function(e){var t=null,n=document.documentElement.scrollTop>e;return function r(){var i=document.documentElement.scrollTop;(n&&i>e||!n&&i=0;p--){var f=o[p];"."===f?a(o,p):".."===f?(a(o,p),d++):d&&(a(o,p),d--)}if(!u)for(;d--;d)o.unshift("..");!u||""===o[0]||o[0]&&i(o[0])||o.unshift("");var m=o.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m},s=n(2177);function l(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,i=t||"/";return n&&"?"!==n&&(i+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(i+="#"===r.charAt(0)?r:"#"+r),i}function f(e,t,n,i){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",i=t.indexOf("#");-1!==i&&(r=t.substr(i),t=t.substr(0,i));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(a.key=n),i?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=o(a.pathname,i.pathname)):a.pathname=i.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,i){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,i):i(!0):i(!1!==a)}else i(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,i):n.push(i),d({action:r,location:i,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",i=f(e,t,h(),w.location);c.confirmTransitionTo(i,r,n,(function(e){e&&(w.entries[w.index]=i,d({action:r,location:i}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=i,this.iframesTimeout=a}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach((function(t){var n=e.filter((function(e){return e.contains(t)})).length>0;-1!==e.indexOf(t)||n||e.push(t)})),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var i=e.contentWindow;if(r=i.document,!i||!r)throw new Error("iframe inaccessible")}catch(a){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,i=!1,a=null,o=function o(){if(!i){i=!0,clearTimeout(a);try{r.isIframeBlank(e)||(e.removeEventListener("load",o),r.getIframeContents(e,t,n))}catch(s){n()}}};e.addEventListener("load",o),a=setTimeout(o,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(r){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,(function(){return!0}),(function(e){r++,n.waitForIframes(e.querySelector("html"),(function(){--r||t()}))}),(function(e){e||t()}))}},{key:"forEachIframe",value:function(t,n,r){var i=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},o=t.querySelectorAll("iframe"),s=o.length,l=0;o=Array.prototype.slice.call(o);var u=function(){--s<=0&&a(l)};s||u(),o.forEach((function(t){e.matches(t,i.exclude)?u():i.onIframeReady(t,(function(e){n(t)&&(l++,r(e)),u()}),u)}))}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:(null===t||e.nextNode())&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var i=!1,a=!1;return r.forEach((function(e,t){e.val===n&&(i=t,a=e.handled)})),this.compareNodeIframe(e,t,n)?(!1!==i||a?!1===i||a||(r[i].handled=!0):r.push({val:n,handled:!0}),!0):(!1===i&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var i=this;e.forEach((function(e){e.handled||i.getIframeContents(e.val,(function(e){i.createInstanceOnIframe(e).forEachNode(t,n,r)}))}))}},{key:"iterateThroughNodes",value:function(e,t,n,r,i){for(var a=this,o=this.createIterator(t,e,r),s=[],l=[],u=void 0,c=void 0,d=function(){var e=a.getIteratorNode(o);return c=e.prevNode,u=e.node};d();)this.iframes&&this.forEachIframe(t,(function(e){return a.checkIframeFilter(u,c,e,s)}),(function(t){a.createInstanceOnIframe(t).forEachNode(e,(function(e){return l.push(e)}),r)})),l.push(u);l.forEach((function(e){n(e)})),this.iframes&&this.handleOpenIframes(s,e,n,r),i()}},{key:"forEachNode",value:function(e,t,n){var r=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=this.getContexts(),o=a.length;o||i(),a.forEach((function(a){var s=function(){r.iterateThroughNodes(e,a,t,n,(function(){--o<=0&&i()}))};r.iframes?r.waitForIframes(a,s):s()}))}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var i=!1;return n.every((function(t){return!r.call(e,t)||(i=!0,!1)})),i}return!1}}]),e}(),a=function(){function a(e){t(this,a),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(a,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var i in t)if(t.hasOwnProperty(i)){var a=t[i],o="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(i):this.escapeStr(i),s="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(a):this.escapeStr(a);""!==o&&""!==s&&(e=e.replace(new RegExp("("+this.escapeStr(o)+"|"+this.escapeStr(s)+")","gm"+n),r+"("+this.processSynomyms(o)+"|"+this.processSynomyms(s)+")"+r))}return e}},{key:"processSynomyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,(function(e){return"\\"===e.charAt(0)?"?":"\x01"}))).replace(/(?:\\)*\*/g,(function(e){return"\\"===e.charAt(0)?"*":"\x02"}))}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,(function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"}))}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105","A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010d","C\xc7\u0106\u010c","d\u0111\u010f","D\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119","E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012b","I\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142","L\u0141","n\xf1\u0148\u0144","N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014d","O\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159","R\u0158","s\u0161\u015b\u0219\u015f","S\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163","T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016b","U\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xff","Y\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017a","Z\u017d\u017b\u0179"]:["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010dC\xc7\u0106\u010c","d\u0111\u010fD\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012bI\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142L\u0141","n\xf1\u0148\u0144N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014dO\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159R\u0158","s\u0161\u015b\u0219\u015fS\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016bU\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xffY\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017aZ\u017d\u017b\u0179"],r=[];return e.split("").forEach((function(i){n.every((function(n){if(-1!==n.indexOf(i)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0}))})),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xa1\xbf",r=this.opt.accuracy,i="string"==typeof r?r:r.value,a="string"==typeof r?[]:r.limiters,o="";switch(a.forEach((function(e){o+="|"+t.escapeStr(e)})),i){default:return"()("+e+")";case"complementary":return"()([^"+(o="\\s"+(o||this.escapeStr(n)))+"]*"+e+"[^"+o+"]*)";case"exactly":return"(^|\\s"+o+")("+e+")(?=$|\\s"+o+")"}}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach((function(e){t.opt.separateWordSearch?e.split(" ").forEach((function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)})):e.trim()&&-1===n.indexOf(e)&&n.push(e)})),{keywords:n.sort((function(e,t){return t.length-e.length})),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort((function(e,t){return e.start-t.start})).forEach((function(e){var i=t.callNoMatchOnInvalidRanges(e,r),a=i.start,o=i.end;i.valid&&(e.start=a,e.length=o-a,n.push(e),r=o)})),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,i=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?i=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:i}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,i=!0,a=n.length,o=t-a,s=parseInt(e.start,10)-o;return(r=(s=s>a?a:s)+parseInt(e.length,10))>a&&(r=a,this.log("End range automatically set to the max value of "+a)),s<0||r-s<0||s>a||r>a?(i=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(i=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:i}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,(function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})}),(function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),(function(){e({value:n,nodes:r})}))}},{key:"matchesExclude",value:function(e){return i.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",i=e.splitText(t),a=i.splitText(n-t),o=document.createElement(r);return o.setAttribute("data-markjs","true"),this.opt.className&&o.setAttribute("class",this.opt.className),o.textContent=i.textContent,i.parentNode.replaceChild(o,i),a}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,i){var a=this;e.nodes.every((function(o,s){var l=e.nodes[s+1];if(void 0===l||l.start>t){if(!r(o.node))return!1;var u=t-o.start,c=(n>o.end?o.end:n)-o.start,d=e.value.substr(0,o.start),p=e.value.substr(c+o.start);if(o.node=a.wrapRangeInTextNode(o.node,u,c),e.value=d+p,e.nodes.forEach((function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=c),e.nodes[n].end-=c)})),n-=c,i(o.node.previousSibling,o.start),!(n>o.end))return!1;t=o.end}return!0}))}},{key:"wrapMatches",value:function(e,t,n,r,i){var a=this,o=0===t?0:t+1;this.getTextNodes((function(t){t.nodes.forEach((function(t){t=t.node;for(var i=void 0;null!==(i=e.exec(t.textContent))&&""!==i[o];)if(n(i[o],t)){var s=i.index;if(0!==o)for(var l=1;l
'};function i(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function o(e,t,n){var i;return(i="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,i}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=i(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),u=a.querySelector(r.barSelector),c=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(u,o(e,c,d)),1===e?(l(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){l(a,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*i(Math.random()*t,.1,.95)),t=i(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var i,o=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),u=document.querySelector(r.parent);return l(o,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(i=t.querySelector(r.spinnerSelector))&&f(i),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,i=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);i--;)if((r=e[i]+a)in n)return r;return t}function i(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=i(t),e.style[t]=n}return function(e,t){var n,r,i=arguments;if(2==i.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,i[1],i[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(i="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=i)},7418:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(i){return!1}}()?Object.assign:function(e,a){for(var o,s,l=i(e),u=1;u