Helm is a package manager for Kubernetes. It simplifies the deployment of applications into a Kubernetes cluster and provides additional features such as versioning and rollbacks.
+
Helm | CHT Technology Radar for Contributors Helm Helm is a package manager for Kubernetes. It simplifies the deployment of applications into a Kubernetes cluster and provides additional features such as versioning and rollbacks.
We are assessing Helm for managing deployments within Kubernetes, which makes templating Kubernetes configuration files easy (also known as Helm charts).
\ No newline at end of file
diff --git a/rd.json b/rd.json
index e61c992..1d1e51b 100644
--- a/rd.json
+++ b/rd.json
@@ -1 +1 @@
-{"items":[{"flag":"new","featured":true,"revisions":[{"name":"amazon-eks","release":"2023-09-13","title":"Amazon EKS","ring":"adopt","quadrant":"platforms-and-aoe-services","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/amazon-eks.md","body":"
Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that makes it easy to run Kubernetes on AWS.\nIt is currently used for Medic hosted CHT deployments.
\n"}],"name":"amazon-eks","title":"Amazon EKS","ring":"adopt","quadrant":"platforms-and-aoe-services","body":"
Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that makes it easy to run Kubernetes on AWS.\nIt is currently used for Medic hosted CHT deployments.
\n","info":"","angleFraction":0.8370938867544957,"radiusFraction":0.182459815135241,"release":"2023-09-13","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/amazon-eks.md"},{"flag":"default","featured":true,"revisions":[{"name":"android-dev","release":"2023-09-12","title":"Android Development","ring":"adopt","quadrant":"platforms-and-aoe-services","tags":["app-development"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/android-dev.md","body":"
An APK file (Android Package Kit file format) is the file format for applications used on the Android operating system (OS).
\n
Android APKs are created to wrap the CHT webapp in a native app.
\n"}],"name":"android-dev","title":"Android Development","ring":"adopt","quadrant":"platforms-and-aoe-services","body":"
An APK file (Android Package Kit file format) is the file format for applications used on the Android operating system (OS).
\n
Android APKs are created to wrap the CHT webapp in a native app.
\n","info":"","angleFraction":0.6607638862069498,"radiusFraction":0.9679579039451602,"release":"2023-09-12","tags":["app-development"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/android-dev.md"},{"flag":"default","featured":true,"revisions":[{"name":"angular","release":"2023-09-12","title":"Angular","ring":"adopt","quadrant":"languages-and-frameworks","tags":["framework","coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/angular.md","body":"
Angular is a TypeScript-based, free and open-source single-page web application framework. \nIt is used for building the CHT webapp.
\n
Angular is a complete rewrite from the same team that built AngularJS.
\n
The CHT UI framework was upgraded from the deprecated AngularJS v1.6 to Angular in the \nCHT version 3.11 .\nThe upgrade drastically reduces the memory used on the phone.\nIt makes development of the Core Framework easier and more reliable and also makes it easier to keep on the latest version of Angular which means we can keep up to date and on a supported version.
\n"}],"name":"angular","title":"Angular","ring":"adopt","quadrant":"languages-and-frameworks","body":"
Angular is a TypeScript-based, free and open-source single-page web application framework. \nIt is used for building the CHT webapp.
\n
Angular is a complete rewrite from the same team that built AngularJS.
\n
The CHT UI framework was upgraded from the deprecated AngularJS v1.6 to Angular in the \nCHT version 3.11 .\nThe upgrade drastically reduces the memory used on the phone.\nIt makes development of the Core Framework easier and more reliable and also makes it easier to keep on the latest version of Angular which means we can keep up to date and on a supported version.
\n","info":"","angleFraction":0.4416520818994605,"radiusFraction":0.6468612119878949,"release":"2023-09-12","tags":["framework","coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/angular.md"},{"flag":"default","featured":true,"revisions":[{"name":"angularjs","release":"2023-09-12","title":"AngularJS","ring":"stop","quadrant":"languages-and-frameworks","tags":["framework","coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/angularjs.md","body":"
AngularJS is an obsolete version of Angular.
\n
The CHT UI framework was upgraded from the deprecated AngularJS v1.6 to Angular in the \nversion 3.11 . \nThe upgrade drastically reduces the memory used on the phone. \nIt makes development of the Core Framework easier and more reliable and also makes it easier to keep on the latest version of Angular which means we can keep up to date and on a supported version.
\n
Currently, it is only used in the CHT admin app. Deprecated: rewrite to Angular.
\n"}],"name":"angularjs","title":"AngularJS","ring":"stop","quadrant":"languages-and-frameworks","body":"
AngularJS is an obsolete version of Angular.
\n
The CHT UI framework was upgraded from the deprecated AngularJS v1.6 to Angular in the \nversion 3.11 . \nThe upgrade drastically reduces the memory used on the phone. \nIt makes development of the Core Framework easier and more reliable and also makes it easier to keep on the latest version of Angular which means we can keep up to date and on a supported version.
\n
Currently, it is only used in the CHT admin app. Deprecated: rewrite to Angular.
\n","info":"","angleFraction":0.26260394961496547,"radiusFraction":0.7290795277917153,"release":"2023-09-12","tags":["framework","coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/angularjs.md"},{"flag":"default","featured":true,"revisions":[{"name":"aws","release":"2023-09-12","title":"AWS","ring":"adopt","quadrant":"platforms-and-aoe-services","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/aws.md","body":"
AWS (Amazon Web Services) is a cloud provider used for Medic hosted services.
\n"}],"name":"aws","title":"AWS","ring":"adopt","quadrant":"platforms-and-aoe-services","body":"
AWS (Amazon Web Services) is a cloud provider used for Medic hosted services.
\n","info":"","angleFraction":0.23572501809203295,"radiusFraction":0.3419354937320511,"release":"2023-09-12","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/aws.md"},{"flag":"default","featured":true,"revisions":[{"name":"bash","release":"2023-09-12","title":"Bash","ring":"stop","quadrant":"languages-and-frameworks","tags":["language","coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/bash.md","body":"
Bash is a Unix-shell and command language used for scripting. \nJavaScript is preferred due to being more testable and cross-platform compatible.
\n"}],"name":"bash","title":"Bash","ring":"stop","quadrant":"languages-and-frameworks","body":"
Bash is a Unix-shell and command language used for scripting. \nJavaScript is preferred due to being more testable and cross-platform compatible.
\n","info":"","angleFraction":0.8144211450939922,"radiusFraction":0.6344174321814031,"release":"2023-09-12","tags":["language","coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/bash.md"},{"flag":"default","featured":true,"revisions":[{"name":"continuous-discovery","release":"2023-09-12","title":"Continuous Discovery","ring":"adopt","quadrant":"methods-and-patterns","tags":["product-development"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/continuous-discovery.md","body":"
Continuous Discovery is the product development process used to build the CHT.
\n"}],"name":"continuous-discovery","title":"Continuous Discovery","ring":"adopt","quadrant":"methods-and-patterns","body":"
Continuous Discovery is the product development process used to build the CHT.
\n","info":"","angleFraction":0.6883613775362647,"radiusFraction":0.32111290115631363,"release":"2023-09-12","tags":["product-development"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/continuous-discovery.md"},{"flag":"default","featured":true,"revisions":[{"name":"continuous-integration","release":"2023-09-12","title":"Continuous Integration","ring":"adopt","quadrant":"methods-and-patterns","tags":["devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/continuous-integration.md","body":"
Continuous Integration (CI) is a software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run.
\n
The CHT has a fully automated end-to-end testing suite which is executed in CI and must pass before any code change is merged to the main branch.
\n"}],"name":"continuous-integration","title":"Continuous Integration","ring":"adopt","quadrant":"methods-and-patterns","body":"
Continuous Integration (CI) is a software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run.
\n
The CHT has a fully automated end-to-end testing suite which is executed in CI and must pass before any code change is merged to the main branch.
\n","info":"","angleFraction":0.5520457547948523,"radiusFraction":0.36059028057457554,"release":"2023-09-12","tags":["devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/continuous-integration.md"},{"flag":"default","featured":true,"revisions":[{"name":"couch2pg","release":"2023-09-12","title":"couch2pg","ring":"stop","quadrant":"tools","tags":["data"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/couch2pg.md","body":"
couch2pg is library and cli for one-way replicating CouchDB databases to PostgreSQL 9.4+.
\n
It is currently in maintenance. Look into cht-sync and cht-pipeline instead.
\n"}],"name":"couch2pg","title":"couch2pg","ring":"stop","quadrant":"tools","body":"
couch2pg is library and cli for one-way replicating CouchDB databases to PostgreSQL 9.4+.
\n
It is currently in maintenance. Look into cht-sync and cht-pipeline instead.
\n","info":"","angleFraction":0.05951307626887803,"radiusFraction":0.19879870190888305,"release":"2023-09-12","tags":["data"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/couch2pg.md"},{"flag":"default","featured":true,"revisions":[{"name":"couchdb","release":"2023-09-12","title":"CouchDB","ring":"adopt","quadrant":"tools","tags":["database"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/couchdb.md","body":"
Apache CouchDB is an open-source document-oriented NoSQL database. \nIt uses multiple formats and protocols to store, transfer, and process its data. It uses JSON to store data, JavaScript as its query language using MapReduce, and HTTP for an API.
\n
CouchDB is the primary database for the CHT. The CHT has a range of CouchDB databases for storing different types of data.
\n"}],"name":"couchdb","title":"CouchDB","ring":"adopt","quadrant":"tools","body":"
Apache CouchDB is an open-source document-oriented NoSQL database. \nIt uses multiple formats and protocols to store, transfer, and process its data. It uses JSON to store data, JavaScript as its query language using MapReduce, and HTTP for an API.
\n
CouchDB is the primary database for the CHT. The CHT has a range of CouchDB databases for storing different types of data.
\n","info":"","angleFraction":0.11758937116621726,"radiusFraction":0.738651820411987,"release":"2023-09-12","tags":["database"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/couchdb.md"},{"flag":"default","featured":true,"revisions":[{"name":"dbt","release":"2023-09-12","title":"dbt","ring":"assess","quadrant":"tools","tags":["data"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/dbt.md","body":"
dbt is an open-source tool and a commercial SaaS product that provides simple and effective transformation capabilities for data analysts.
\n
dbt uses SQL to model simple batch transformations, while it provides command-line tooling that encourages good engineering practices such as versioning, automated testing and deployment; essentially it implements SQL-based transformation modeling as code.\nIt currently supports multiple data sources, including Postgres.
\n
It the CHT context, dbt runs data tests and migrations for cht-sync .
\n"}],"name":"dbt","title":"dbt","ring":"assess","quadrant":"tools","body":"
dbt is an open-source tool and a commercial SaaS product that provides simple and effective transformation capabilities for data analysts.
\n
dbt uses SQL to model simple batch transformations, while it provides command-line tooling that encourages good engineering practices such as versioning, automated testing and deployment; essentially it implements SQL-based transformation modeling as code.\nIt currently supports multiple data sources, including Postgres.
\n
It the CHT context, dbt runs data tests and migrations for cht-sync .
\n","info":"","angleFraction":0.07366629776065037,"radiusFraction":0.3286696653238175,"release":"2023-09-12","tags":["data"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/dbt.md"},{"flag":"default","featured":true,"revisions":[{"name":"docker","release":"2023-09-12","title":"Docker","ring":"adopt","quadrant":"tools","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/docker.md","body":"
Docker is currently the most-used solution for creating and managing container-based infrastructures and deployments.
\n
Docker is a platform to build container images, distribute them and run them as an isolated process (using Linux kernel cgroups, network namespaces and custom mounts).
\n
It is used extensively for containerizing CHT products.
\n"}],"name":"docker","title":"Docker","ring":"adopt","quadrant":"tools","body":"
Docker is currently the most-used solution for creating and managing container-based infrastructures and deployments.
\n
Docker is a platform to build container images, distribute them and run them as an isolated process (using Linux kernel cgroups, network namespaces and custom mounts).
\n
It is used extensively for containerizing CHT products.
\n","info":"","angleFraction":0.9391089335861733,"radiusFraction":0.8915338816314176,"release":"2023-09-12","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/docker.md"},{"flag":"default","featured":true,"revisions":[{"name":"dot","release":"2023-09-12","title":"DOT","ring":"trial","quadrant":"tools","tags":["data"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/dot.md","body":"
Data Observation Toolkit (DOT) can be used to monitor data in order to flag problems with data integrity and scenarios that might need attention. \nTypical tests include checks for missing/duplicate and inconsistent data, outliers, and domain-specific signals such as a missed follow-up medical treatment after initial diagnosis.
\n
DOT includes a simple user interface for configuring the powerful DBT and Great Expectations libraries, as well as a database for storing and classifying data monitoring results.
\n"}],"name":"dot","title":"DOT","ring":"trial","quadrant":"tools","body":"
Data Observation Toolkit (DOT) can be used to monitor data in order to flag problems with data integrity and scenarios that might need attention. \nTypical tests include checks for missing/duplicate and inconsistent data, outliers, and domain-specific signals such as a missed follow-up medical treatment after initial diagnosis.
\n
DOT includes a simple user interface for configuring the powerful DBT and Great Expectations libraries, as well as a database for storing and classifying data monitoring results.
\n","info":"","angleFraction":0.11126017950556322,"radiusFraction":0.3988204739752741,"release":"2023-09-12","tags":["data"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/dot.md"},{"flag":"default","featured":true,"revisions":[{"name":"enketo","release":"2023-09-12","title":"Enketo","ring":"adopt","quadrant":"languages-and-frameworks","tags":["framework"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/enketo.md","body":"
Enketo is a 100% free and open-source JavaScript library used for rendering xforms as HTML with CSS and JS.
\n"}],"name":"enketo","title":"Enketo","ring":"adopt","quadrant":"languages-and-frameworks","body":"
Enketo is a 100% free and open-source JavaScript library used for rendering xforms as HTML with CSS and JS.
\n","info":"","angleFraction":0.36958433920469447,"radiusFraction":0.07546987190641685,"release":"2023-09-12","tags":["framework"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/enketo.md"},{"flag":"default","featured":true,"revisions":[{"name":"git","release":"2023-09-12","title":"git","ring":"adopt","quadrant":"tools","tags":["tool"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/git.md","body":"
Git is a free and open-source distributed version control system.
\n"}],"name":"git","title":"git","ring":"adopt","quadrant":"tools","body":"
Git is a free and open-source distributed version control system.
\n","info":"","angleFraction":0.8411197190277149,"radiusFraction":0.04393921012088797,"release":"2023-09-12","tags":["tool"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/git.md"},{"flag":"default","featured":true,"revisions":[{"name":"github","release":"2023-09-12","title":"GitHub","ring":"adopt","quadrant":"platforms-and-aoe-services","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/github.md","body":"
GitHub is a code hosting platform for version control and collaboration.
\n
The CHT code is hosted in GitHub .
\n"}],"name":"github","title":"GitHub","ring":"adopt","quadrant":"platforms-and-aoe-services","body":"
GitHub is a code hosting platform for version control and collaboration.
\n
The CHT code is hosted in GitHub .
\n","info":"","angleFraction":0.007799102126296642,"radiusFraction":0.9036208421324583,"release":"2023-09-12","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/github.md"},{"flag":"default","featured":true,"revisions":[{"name":"github-actions","release":"2023-09-12","title":"GitHub Actions","ring":"adopt","quadrant":"tools","tags":["devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/github-actions.md","body":"
GitHub Actions is used extensively for Continuous Integration (CI) across CHT products including testing and releasing.
\n"}],"name":"github-actions","title":"GitHub Actions","ring":"adopt","quadrant":"tools","body":"
GitHub Actions is used extensively for Continuous Integration (CI) across CHT products including testing and releasing.
\n","info":"","angleFraction":0.48977978576725323,"radiusFraction":0.8782413706830621,"release":"2023-09-12","tags":["devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/github-actions.md"},{"flag":"changed","featured":true,"revisions":[{"name":"grafana","release":"2023-09-13","title":"Grafana","ring":"adopt","quadrant":"tools","tags":["monitoring","alerting","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/grafana.md","body":"
Grafana is an open-source dashboard visualization and alerting software. \nIt is an industry standard for this task, and it is written in Go and NodeJS.\nIt provides a vast choice of different graph types that can be easily combined into dashboards for displaying any kind of numerical or time-based data.
\n
There is a free repository of pre-existing dashboards which greatly reduce the time to create new dashboards and alerts. \nIt can send alerts via email, Slack, SMS and many more.
\n
In the CHT, Grafana is usually used in conjunction with Prometheus for visualizing both application and infrastructure metrics via the CHT Watchdog.
\n
You can find more details about using Grafana with the CHT Watchdog in the related documentation .\n.
\n"},{"name":"grafana","release":"2023-09-12","title":"Grafana","ring":"assess","quadrant":"tools","tags":["monitoring","alerting"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/grafana.md","body":"
Grafana is being evaluated for CHT Watchdog.
\n"}],"name":"grafana","title":"Grafana","ring":"adopt","quadrant":"tools","body":"
Grafana is an open-source dashboard visualization and alerting software. \nIt is an industry standard for this task, and it is written in Go and NodeJS.\nIt provides a vast choice of different graph types that can be easily combined into dashboards for displaying any kind of numerical or time-based data.
\n
There is a free repository of pre-existing dashboards which greatly reduce the time to create new dashboards and alerts. \nIt can send alerts via email, Slack, SMS and many more.
\n
In the CHT, Grafana is usually used in conjunction with Prometheus for visualizing both application and infrastructure metrics via the CHT Watchdog.
\n
You can find more details about using Grafana with the CHT Watchdog in the related documentation .\n.
\n","info":"","angleFraction":0.04906128819056854,"radiusFraction":0.7159698440615083,"release":"2023-09-13","tags":["monitoring","alerting","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/grafana.md"},{"flag":"default","featured":false,"revisions":[{"name":"grunt","release":"2023-09-12","title":"Grunt","ring":"stop","quadrant":"tools","tags":["tool"],"featured":false,"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/grunt.md","body":"
Grunt was designed as a task-based command line build tool for JavaScript projects. Grunt is primarily used to automate tasks that need to be performed routinely.
\n
Deprecated: Use native JavaScript instead.
\n"}],"name":"grunt","title":"Grunt","ring":"stop","quadrant":"tools","body":"
Grunt was designed as a task-based command line build tool for JavaScript projects. Grunt is primarily used to automate tasks that need to be performed routinely.
\n
Deprecated: Use native JavaScript instead.
\n","info":"","angleFraction":0.8539935803737846,"radiusFraction":0.6612264833248329,"release":"2023-09-12","tags":["tool"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/grunt.md"},{"flag":"default","featured":true,"revisions":[{"name":"haproxy","release":"2023-09-12","title":"HAProxy","ring":"assess","quadrant":"tools","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/haproxy.md","body":"
HAProxy is a free reverse-proxy offering high availability, load balancing, and proxying for TCP and HTTP-based applications.
\n
It is used for audit logging and load balancing CouchDB cluster. Due for re-evaluation.
\n"}],"name":"haproxy","title":"HAProxy","ring":"assess","quadrant":"tools","body":"
HAProxy is a free reverse-proxy offering high availability, load balancing, and proxying for TCP and HTTP-based applications.
\n
It is used for audit logging and load balancing CouchDB cluster. Due for re-evaluation.
\n","info":"","angleFraction":0.023756082078139507,"radiusFraction":0.18226772639091693,"release":"2023-09-12","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/haproxy.md"},{"flag":"new","featured":true,"revisions":[{"name":"helm","release":"2023-09-13","title":"Helm","ring":"assess","quadrant":"platforms-and-aoe-services","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/helm.md","body":"
Helm is a package manager for Kubernetes. It simplifies the deployment of applications into a Kubernetes cluster and provides additional features such as versioning and rollbacks.
\n
We are assessing Helm for managing deployments within Kubernetes, which makes templating Kubernetes configuration files easy (also known as Helm charts).
\n"}],"name":"helm","title":"Helm","ring":"assess","quadrant":"platforms-and-aoe-services","body":"
Helm is a package manager for Kubernetes. It simplifies the deployment of applications into a Kubernetes cluster and provides additional features such as versioning and rollbacks.
\n
We are assessing Helm for managing deployments within Kubernetes, which makes templating Kubernetes configuration files easy (also known as Helm charts).
\n","info":"","angleFraction":0.06844364548236759,"radiusFraction":0.7617322188758922,"release":"2023-09-13","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/helm.md"},{"flag":"default","featured":true,"revisions":[{"name":"javascript","release":"2023-09-12","title":"JavaScript","ring":"adopt","quadrant":"languages-and-frameworks","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/javascript.md","body":"
JavaScript is the primary programming language used in the CHT.
\n"}],"name":"javascript","title":"JavaScript","ring":"adopt","quadrant":"languages-and-frameworks","body":"
JavaScript is the primary programming language used in the CHT.
\n","info":"","angleFraction":0.09276989056190921,"radiusFraction":0.9281598127220174,"release":"2023-09-12","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/javascript.md"},{"flag":"new","featured":true,"revisions":[{"name":"jest","release":"2023-09-13","title":"Jest","ring":"assess","quadrant":"languages-and-frameworks","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/jest.md","body":"
Jest is an open-source JS-based testing framework maintained by Facebook. \nIt is designed to be easy to use and provides a comprehensive set of tools for writing end-to-end, integration, and unit tests for JavaScript applications. \nIt is a complete and ready to set up JavaScript testing solution.
\n
In the CHT, Jest is used to test cht-interoperability .
\n
Advantages \n
\nEasy to use: Jest is intuitive and easy to set up, making it ideal for beginners and experienced developers. \nExtensive test coverage: Jest provides a complete set of tools for writing unit, integration, and end-to-end tests. \nIntegration with other frameworks: Jest integrates well with projects that use React, but can also be used with other JavaScript frameworks (Babel, TypeScript, Node, React, Angular, Vue and more). \nFast and efficient: Jest uses parallel test execution and other techniques to speed up test execution time. \nProvides testing support for asynchronous code. \nIt is maintained and well-documented, making it easy to learn. \nCode Coverage: Jest provides built-in code coverage reports to help developers identify areas not covered by tests. \n \n
Drawbacks \n
\nCompared to Jasmine and other frameworks, not many libraries and toolings are supported by Jest. \nPeople not comfortable with the Jest framework have asserted that the learning curve is pretty hard. \nLeveraging auto-mocking can make tests slow. This is because the more dependencies a module has, the more work needs to be done by Jest to mock it, which comes at the cost of performance. \nSnapshot testing with Jest is not so feasible for larger snapshot files containing thousands of lines. \nIts debugging capabilities need improvement. \n \n
Market - Current Adoption \n
Jest has over 10 million dependent repos on GitHub .\nProminent companies that reportedly adopt Jest in their tech stack are: Facebook, Airbnb, Spotify, The New York Times, Travel Perk, Twitter, Instagram, etc.\nStateofjs collects data from thousands of front-end developers in its annual surveys. \nHere’s their most recent ranking of most popular JS testing frameworks, sorted by their usage and Jest is at the top 3.
\n"}],"name":"jest","title":"Jest","ring":"assess","quadrant":"languages-and-frameworks","body":"
Jest is an open-source JS-based testing framework maintained by Facebook. \nIt is designed to be easy to use and provides a comprehensive set of tools for writing end-to-end, integration, and unit tests for JavaScript applications. \nIt is a complete and ready to set up JavaScript testing solution.
\n
In the CHT, Jest is used to test cht-interoperability .
\n
Advantages \n
\nEasy to use: Jest is intuitive and easy to set up, making it ideal for beginners and experienced developers. \nExtensive test coverage: Jest provides a complete set of tools for writing unit, integration, and end-to-end tests. \nIntegration with other frameworks: Jest integrates well with projects that use React, but can also be used with other JavaScript frameworks (Babel, TypeScript, Node, React, Angular, Vue and more). \nFast and efficient: Jest uses parallel test execution and other techniques to speed up test execution time. \nProvides testing support for asynchronous code. \nIt is maintained and well-documented, making it easy to learn. \nCode Coverage: Jest provides built-in code coverage reports to help developers identify areas not covered by tests. \n \n
Drawbacks \n
\nCompared to Jasmine and other frameworks, not many libraries and toolings are supported by Jest. \nPeople not comfortable with the Jest framework have asserted that the learning curve is pretty hard. \nLeveraging auto-mocking can make tests slow. This is because the more dependencies a module has, the more work needs to be done by Jest to mock it, which comes at the cost of performance. \nSnapshot testing with Jest is not so feasible for larger snapshot files containing thousands of lines. \nIts debugging capabilities need improvement. \n \n
Market - Current Adoption \n
Jest has over 10 million dependent repos on GitHub .\nProminent companies that reportedly adopt Jest in their tech stack are: Facebook, Airbnb, Spotify, The New York Times, Travel Perk, Twitter, Instagram, etc.\nStateofjs collects data from thousands of front-end developers in its annual surveys. \nHere’s their most recent ranking of most popular JS testing frameworks, sorted by their usage and Jest is at the top 3.
\n","info":"","angleFraction":0.04130635787078707,"radiusFraction":0.26857931042119954,"release":"2023-09-13","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/jest.md"},{"flag":"changed","featured":true,"revisions":[{"name":"k3d","release":"2023-09-13","title":"k3d","ring":"adopt","quadrant":"tools","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/k3d.md","body":"
k3d is a lightweight wrapper to run k3s (Rancher Lab’s minimal Kubernetes distribution) in docker.
\n
k3d makes it very easy to create single- and multi-node k3s clusters in Docker, e.g. for local development on Kubernetes.
\n"},{"name":"k3d","release":"2023-09-12","title":"k3d","ring":"assess","quadrant":"tools","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/k3d.md","body":"
k3d is an orchestration tool which may be suitable for self-hosting. Under investigation.
\n"}],"name":"k3d","title":"k3d","ring":"adopt","quadrant":"tools","body":"
k3d is a lightweight wrapper to run k3s (Rancher Lab’s minimal Kubernetes distribution) in docker.
\n
k3d makes it very easy to create single- and multi-node k3s clusters in Docker, e.g. for local development on Kubernetes.
\n","info":"","angleFraction":0.6001636253204923,"radiusFraction":0.20679453053155195,"release":"2023-09-13","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/k3d.md"},{"flag":"new","featured":true,"revisions":[{"name":"k3s","release":"2023-09-13","title":"k3s","ring":"adopt","quadrant":"tools","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/k3s.md","body":"
k3s is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances.
\n"}],"name":"k3s","title":"k3s","ring":"adopt","quadrant":"tools","body":"
k3s is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances.
\n","info":"","angleFraction":0.6963380556872096,"radiusFraction":0.4721604056491242,"release":"2023-09-13","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/k3s.md"},{"flag":"changed","featured":true,"revisions":[{"name":"klipfolio","release":"2023-09-13","title":"Klipfolio","ring":"stop","quadrant":"tools","tags":["dashboard","analytics"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/klipfolio.md","body":"
We recommend using Superset for building dashboards with the CHT, as it is an open-source tool.
\n
Read more about Data Flows for Analytics with the CHT in the CHT documentation .
\n"},{"name":"klipfolio","release":"2023-09-12","title":"Klipfolio","ring":"adopt","quadrant":"tools","tags":["dashboard","analytics"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/klipfolio.md","body":"
Klipfolio is a paid third-party SAAS option for building dashboards.
\n"}],"name":"klipfolio","title":"Klipfolio","ring":"stop","quadrant":"tools","body":"
We recommend using Superset for building dashboards with the CHT, as it is an open-source tool.
\n
Read more about Data Flows for Analytics with the CHT in the CHT documentation .
\n","info":"","angleFraction":0.8195524795924605,"radiusFraction":0.11323463626251229,"release":"2023-09-13","tags":["dashboard","analytics"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/klipfolio.md"},{"flag":"changed","featured":true,"revisions":[{"name":"kubernetes","release":"2023-09-13","title":"Kubernetes","ring":"adopt","quadrant":"tools","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/kubernetes.md","body":"
Kubernetes , also known as k8s, is an open-source system for automating deployment, scaling, and management of containerized applications.
\n
Kubernetes has developed into the quasi-standard for container orchestration: Nearly every cloud provider provides managed Kubernetes, and even Docker Enterprise uses Kubernetes.
\n"},{"name":"kubernetes","release":"2023-09-12","title":"Kubernetes","ring":"assess","quadrant":"tools","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/kubernetes.md","body":"
Kubernetes platform is used for hosting the CHT. For self hosting partners we recommend lightweight implementations like k3d. For cloud deployments, use a Platform as a Service offering like Amazon EKS.
\n"}],"name":"kubernetes","title":"Kubernetes","ring":"adopt","quadrant":"tools","body":"
Kubernetes , also known as k8s, is an open-source system for automating deployment, scaling, and management of containerized applications.
\n
Kubernetes has developed into the quasi-standard for container orchestration: Nearly every cloud provider provides managed Kubernetes, and even Docker Enterprise uses Kubernetes.
\n","info":"","angleFraction":0.12377331527611224,"radiusFraction":0.8188069848369988,"release":"2023-09-13","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/kubernetes.md"},{"flag":"default","featured":true,"revisions":[{"name":"lua","release":"2023-09-12","title":"lua","ring":"assess","quadrant":"languages-and-frameworks","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/lua.md","body":"
Lua is used in HAProxy to mask credentials from being logged in the audit log. Because HAProxy is being assessed, this may be removed soon.
\n"}],"name":"lua","title":"lua","ring":"assess","quadrant":"languages-and-frameworks","body":"
Lua is used in HAProxy to mask credentials from being logged in the audit log. Because HAProxy is being assessed, this may be removed soon.
\n","info":"","angleFraction":0.524723682739731,"radiusFraction":0.4888055524414243,"release":"2023-09-12","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/lua.md"},{"flag":"default","featured":true,"revisions":[{"name":"mochajs","release":"2023-09-12","title":"Mocha","ring":"adopt","quadrant":"languages-and-frameworks","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/mochajs.md","body":"
Mocha is a JavaScript test framework running on Node.js and in the browser.
\n
In the CHT, Mocha is used to run the unit tests .
\n"}],"name":"mochajs","title":"Mocha","ring":"adopt","quadrant":"languages-and-frameworks","body":"
Mocha is a JavaScript test framework running on Node.js and in the browser.
\n
In the CHT, Mocha is used to run the unit tests .
\n","info":"","angleFraction":0.18051455414451412,"radiusFraction":0.7458066856368761,"release":"2023-09-12","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/mochajs.md"},{"flag":"default","featured":true,"revisions":[{"name":"nginx","release":"2023-09-12","title":"Nginx","ring":"adopt","quadrant":"tools","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/nginx.md","body":"
Nginx is an open-source web server software used for reverse proxy, load balancing, and caching.
\n
It provides SSL termination for self-hosted CHT deployments.
\n"}],"name":"nginx","title":"Nginx","ring":"adopt","quadrant":"tools","body":"
Nginx is an open-source web server software used for reverse proxy, load balancing, and caching.
\n
It provides SSL termination for self-hosted CHT deployments.
\n","info":"","angleFraction":0.6866081054883486,"radiusFraction":0.8853367509105323,"release":"2023-09-12","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/nginx.md"},{"flag":"default","featured":true,"revisions":[{"name":"nodejs","release":"2023-09-12","title":"node.js","ring":"adopt","quadrant":"languages-and-frameworks","tags":["framework"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/nodejs.md","body":"
Node.js is an open-source, no-browser JavaScript execution runtime.
\n
In the context of the CHT, it is used for services on the server like API and Sentinel as well as scripting.
\n"}],"name":"nodejs","title":"node.js","ring":"adopt","quadrant":"languages-and-frameworks","body":"
Node.js is an open-source, no-browser JavaScript execution runtime.
\n
In the context of the CHT, it is used for services on the server like API and Sentinel as well as scripting.
\n","info":"","angleFraction":0.49386122219851414,"radiusFraction":0.9726206530853658,"release":"2023-09-12","tags":["framework"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/nodejs.md"},{"flag":"default","featured":true,"revisions":[{"name":"npm","release":"2023-09-12","title":"npm","ring":"adopt","quadrant":"tools","tags":["tool"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/npm.md","body":"
npm is a library and registry for JavaScript software packages.
\n
It is used widely for CHT products.
\n"}],"name":"npm","title":"npm","ring":"adopt","quadrant":"tools","body":"
npm is a library and registry for JavaScript software packages.
\n
It is used widely for CHT products.
\n","info":"","angleFraction":0.9097264327348071,"radiusFraction":0.40564256523480524,"release":"2023-09-12","tags":["tool"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/npm.md"},{"flag":"default","featured":true,"revisions":[{"name":"postgres","release":"2023-09-12","title":"Postgres","ring":"adopt","quadrant":"tools","tags":["database"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/postgres.md","body":"
Postgres is primarily used as a data warehouse for analytics queries.
\n"}],"name":"postgres","title":"Postgres","ring":"adopt","quadrant":"tools","body":"
Postgres is primarily used as a data warehouse for analytics queries.
\n","info":"","angleFraction":0.33859656452455056,"radiusFraction":0.8175998778175582,"release":"2023-09-12","tags":["database"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/postgres.md"},{"flag":"default","featured":true,"revisions":[{"name":"pouchdb","release":"2023-09-12","title":"PouchDB","ring":"adopt","quadrant":"languages-and-frameworks","tags":["framework"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/pouchdb.md","body":"
PouchDB is an open-source JavaScript database inspired by Apache CouchDB that is designed to run within the browser.
\n
PouchDB is used for storing data on the phone in the CHT webapp to enable it to work offline seamlessly. \nIt is also used as a library for querying CouchDB from api, sentinel, and the admin app.
\n"}],"name":"pouchdb","title":"PouchDB","ring":"adopt","quadrant":"languages-and-frameworks","body":"
PouchDB is an open-source JavaScript database inspired by Apache CouchDB that is designed to run within the browser.
\n
PouchDB is used for storing data on the phone in the CHT webapp to enable it to work offline seamlessly. \nIt is also used as a library for querying CouchDB from api, sentinel, and the admin app.
\n","info":"","angleFraction":0.22650346071913519,"radiusFraction":0.5878730410708219,"release":"2023-09-12","tags":["framework"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/pouchdb.md"},{"flag":"changed","featured":true,"revisions":[{"name":"prometheus","release":"2023-09-13","title":"Prometheus","ring":"adopt","quadrant":"tools","tags":["monitoring","alerting","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/prometheus.md","body":"
Prometheus is an open-source Time Series Database (TSDB) that was developed explicitly to do detailed longitudinal monitoring. \nIt also aggregates metrics and can automatically cull older data to save on CPU and disk space.
\n
Compared to other monitoring systems it stands out in its simple, still powerful and fully code-based configuration and the equally powerful service discovery mechanism.
\n
Prometheus integrates very well with Grafana which is the tool of choice for dashboard visualization in the CHT Watchdog.
\n
You can find more details about using Prometheus with the CHT Watchdog in the related documentation .
\n"},{"name":"prometheus","release":"2023-09-12","title":"Prometheus","ring":"assess","quadrant":"tools","tags":["monitoring","alerting"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/prometheus.md","body":"
Being evaluated for CHT Watchdog.
\n"}],"name":"prometheus","title":"Prometheus","ring":"adopt","quadrant":"tools","body":"
Prometheus is an open-source Time Series Database (TSDB) that was developed explicitly to do detailed longitudinal monitoring. \nIt also aggregates metrics and can automatically cull older data to save on CPU and disk space.
\n
Compared to other monitoring systems it stands out in its simple, still powerful and fully code-based configuration and the equally powerful service discovery mechanism.
\n
Prometheus integrates very well with Grafana which is the tool of choice for dashboard visualization in the CHT Watchdog.
\n
You can find more details about using Prometheus with the CHT Watchdog in the related documentation .
\n","info":"","angleFraction":0.8166199319760963,"radiusFraction":0.36822522860343354,"release":"2023-09-13","tags":["monitoring","alerting","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/prometheus.md"},{"flag":"default","featured":true,"revisions":[{"name":"protractor","release":"2023-09-12","title":"Protractor","ring":"stop","quadrant":"languages-and-frameworks","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/protractor.md","body":"
Protractor is an end-to-end test framework for Angular and AngularJS applications.
\n
Currently deprecated in the context of the CHT. All the end-to-end tests were rewritten to WebDriverIO.
\n
The primary motivation to migrate from Protractor to WebDriverIO is that the Angular team \nannounced in April, 2021 that Protractor will no longer be supported.
\n"}],"name":"protractor","title":"Protractor","ring":"stop","quadrant":"languages-and-frameworks","body":"
Protractor is an end-to-end test framework for Angular and AngularJS applications.
\n
Currently deprecated in the context of the CHT. All the end-to-end tests were rewritten to WebDriverIO.
\n
The primary motivation to migrate from Protractor to WebDriverIO is that the Angular team \nannounced in April, 2021 that Protractor will no longer be supported.
\n","info":"","angleFraction":0.22553714689007665,"radiusFraction":0.5083160278591334,"release":"2023-09-12","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/protractor.md"},{"flag":"default","featured":true,"revisions":[{"name":"pwa","release":"2023-09-12","title":"PWA","ring":"adopt","quadrant":"methods-and-patterns","tags":["technique"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/pwa.md","body":"
A progressive web application (PWA) is a type of application software delivered through the web, built using common web technologies including HTML, CSS, and JavaScript. \nIt is intended to work on any platform with a standards-compliant browser, including desktop and mobile devices.
\n
The PWA is followed for CHT webapp to allow offline first capability .
\n"}],"name":"pwa","title":"PWA","ring":"adopt","quadrant":"methods-and-patterns","body":"
A progressive web application (PWA) is a type of application software delivered through the web, built using common web technologies including HTML, CSS, and JavaScript. \nIt is intended to work on any platform with a standards-compliant browser, including desktop and mobile devices.
\n
The PWA is followed for CHT webapp to allow offline first capability .
\n","info":"","angleFraction":0.5224193025790862,"radiusFraction":0.06298259222023761,"release":"2023-09-12","tags":["technique"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/pwa.md"},{"flag":"default","featured":true,"revisions":[{"name":"python","release":"2023-09-12","title":"Python","ring":"stop","quadrant":"languages-and-frameworks","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/python.md","body":"
Python is a programming language used currently only to convert xls forms to xforms in \ncht-conf .
\n"}],"name":"python","title":"Python","ring":"stop","quadrant":"languages-and-frameworks","body":"
Python is a programming language used currently only to convert xls forms to xforms in \ncht-conf .
\n","info":"","angleFraction":0.15220507389362758,"radiusFraction":0.05889108496591344,"release":"2023-09-12","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/python.md"},{"flag":"default","featured":true,"revisions":[{"name":"quality-assistance","release":"2023-09-12","title":"Quality Assistance","ring":"adopt","quadrant":"methods-and-patterns","tags":["product-development","quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/quality-assistance.md","body":"
Quality Assistance is the process used for ensuring the quality of the CHT.
\n"}],"name":"quality-assistance","title":"Quality Assistance","ring":"adopt","quadrant":"methods-and-patterns","body":"
Quality Assistance is the process used for ensuring the quality of the CHT.
\n","info":"","angleFraction":0.7793197549853959,"radiusFraction":0.3042171622860994,"release":"2023-09-12","tags":["product-development","quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/quality-assistance.md"},{"flag":"new","featured":true,"revisions":[{"name":"sonarcloud","release":"2023-09-13","title":"SonarCloud","ring":"adopt","quadrant":"tools","tags":["ci/cd","quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/sonarcloud.md","body":"
Sonar static analysis supports development by providing feedback on code quality and security issues.
\n
SonarCloud is the cloud-based solution of Sonar. \nIt can be enabled on any public GitHub repository in the Medic organization and must pass on all new code.
\n
You can find more details about using SonarCloud with the CHT\nin the related documentation .
\n"}],"name":"sonarcloud","title":"SonarCloud","ring":"adopt","quadrant":"tools","body":"
Sonar static analysis supports development by providing feedback on code quality and security issues.
\n
SonarCloud is the cloud-based solution of Sonar. \nIt can be enabled on any public GitHub repository in the Medic organization and must pass on all new code.
\n
You can find more details about using SonarCloud with the CHT\nin the related documentation .
\n","info":"","angleFraction":0.896077893662649,"radiusFraction":0.862164408456672,"release":"2023-09-13","tags":["ci/cd","quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/sonarcloud.md"},{"flag":"default","featured":true,"revisions":[{"name":"superset","release":"2023-09-12","title":"Superset","ring":"adopt","quadrant":"tools","tags":["dashboard","analytics"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/superset.md","body":"
Superset is an open-source data exploration and visualization platform.
\n
In the context of the CHT, Superset is used for health care analytics.
\n"}],"name":"superset","title":"Superset","ring":"adopt","quadrant":"tools","body":"
Superset is an open-source data exploration and visualization platform.
\n
In the context of the CHT, Superset is used for health care analytics.
\n","info":"","angleFraction":0.47351049787525357,"radiusFraction":0.551505294617072,"release":"2023-09-12","tags":["dashboard","analytics"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/superset.md"},{"flag":"default","featured":true,"revisions":[{"name":"typescript","release":"2023-09-12","title":"TypeScript","ring":"adopt","quadrant":"languages-and-frameworks","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/typescript.md","body":"
TypeScript is a language that gets transpiled to native JavaScript code.
\n
It is used a lot in CHT webapp with the potential to use it more widely.
\n"}],"name":"typescript","title":"TypeScript","ring":"adopt","quadrant":"languages-and-frameworks","body":"
TypeScript is a language that gets transpiled to native JavaScript code.
\n
It is used a lot in CHT webapp with the potential to use it more widely.
\n","info":"","angleFraction":0.18514071194945125,"radiusFraction":0.2568584548048005,"release":"2023-09-12","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/typescript.md"},{"flag":"default","featured":true,"revisions":[{"name":"webdriverio","release":"2023-09-12","title":"WebDriverIO","ring":"adopt","quadrant":"languages-and-frameworks","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/webdriverio.md","body":"
WebDriverIO is UI testing framework used for end-to-end testing in web applications.
\n
In the CHT Core Framework, WebDriverIO is used to run the e2e tests .
\n
WebDriverIO was influenced by a lot of Protractor's design decisions which is why it was the closest framework to migrate over.
\n
Advantages \n
\nOpen source \nNumerous integrations to tools \nFast and easy location of page elements \nGood documentation \n \n
Drawbacks \n
\nIntegrations with reports (specifically allure) frameworks is not straightforward. \n \n
The migration from Protractor was finalized in July 2023.
\n"}],"name":"webdriverio","title":"WebDriverIO","ring":"adopt","quadrant":"languages-and-frameworks","body":"
WebDriverIO is UI testing framework used for end-to-end testing in web applications.
\n
In the CHT Core Framework, WebDriverIO is used to run the e2e tests .
\n
WebDriverIO was influenced by a lot of Protractor's design decisions which is why it was the closest framework to migrate over.
\n
Advantages \n
\nOpen source \nNumerous integrations to tools \nFast and easy location of page elements \nGood documentation \n \n
Drawbacks \n
\nIntegrations with reports (specifically allure) frameworks is not straightforward. \n \n
The migration from Protractor was finalized in July 2023.
\n","info":"","angleFraction":0.5409453980961059,"radiusFraction":0.14681398039078997,"release":"2023-09-12","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/webdriverio.md"}],"releases":["2023-09-12","2023-09-13"]}
\ No newline at end of file
+{"items":[{"flag":"default","featured":true,"revisions":[{"name":"amazon-eks","release":"2023-09-13","title":"Amazon EKS","ring":"adopt","quadrant":"platforms-and-aoe-services","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/amazon-eks.md","body":"
Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that makes it easy to run Kubernetes on AWS.\nIt is currently used for Medic hosted CHT deployments.
\n"}],"name":"amazon-eks","title":"Amazon EKS","ring":"adopt","quadrant":"platforms-and-aoe-services","body":"
Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that makes it easy to run Kubernetes on AWS.\nIt is currently used for Medic hosted CHT deployments.
\n","info":"","angleFraction":0.28033586661122456,"radiusFraction":0.789758398321692,"release":"2023-09-13","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/amazon-eks.md"},{"flag":"default","featured":true,"revisions":[{"name":"android-dev","release":"2023-09-12","title":"Android Development","ring":"adopt","quadrant":"platforms-and-aoe-services","tags":["app-development"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/android-dev.md","body":"
An APK file (Android Package Kit file format) is the file format for applications used on the Android operating system (OS).
\n
Android APKs are created to wrap the CHT webapp in a native app.
\n"}],"name":"android-dev","title":"Android Development","ring":"adopt","quadrant":"platforms-and-aoe-services","body":"
An APK file (Android Package Kit file format) is the file format for applications used on the Android operating system (OS).
\n
Android APKs are created to wrap the CHT webapp in a native app.
\n","info":"","angleFraction":0.6549221839385315,"radiusFraction":0.25636239570459796,"release":"2023-09-12","tags":["app-development"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/android-dev.md"},{"flag":"default","featured":true,"revisions":[{"name":"angular","release":"2023-09-12","title":"Angular","ring":"adopt","quadrant":"languages-and-frameworks","tags":["framework","coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/angular.md","body":"
Angular is a TypeScript-based, free and open-source single-page web application framework. \nIt is used for building the CHT webapp.
\n
Angular is a complete rewrite from the same team that built AngularJS.
\n
The CHT UI framework was upgraded from the deprecated AngularJS v1.6 to Angular in the \nCHT version 3.11 .\nThe upgrade drastically reduces the memory used on the phone.\nIt makes development of the Core Framework easier and more reliable and also makes it easier to keep on the latest version of Angular which means we can keep up to date and on a supported version.
\n"}],"name":"angular","title":"Angular","ring":"adopt","quadrant":"languages-and-frameworks","body":"
Angular is a TypeScript-based, free and open-source single-page web application framework. \nIt is used for building the CHT webapp.
\n
Angular is a complete rewrite from the same team that built AngularJS.
\n
The CHT UI framework was upgraded from the deprecated AngularJS v1.6 to Angular in the \nCHT version 3.11 .\nThe upgrade drastically reduces the memory used on the phone.\nIt makes development of the Core Framework easier and more reliable and also makes it easier to keep on the latest version of Angular which means we can keep up to date and on a supported version.
\n","info":"","angleFraction":0.156478858564705,"radiusFraction":0.9304921066405356,"release":"2023-09-12","tags":["framework","coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/angular.md"},{"flag":"default","featured":true,"revisions":[{"name":"angularjs","release":"2023-09-12","title":"AngularJS","ring":"stop","quadrant":"languages-and-frameworks","tags":["framework","coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/angularjs.md","body":"
AngularJS is an obsolete version of Angular.
\n
The CHT UI framework was upgraded from the deprecated AngularJS v1.6 to Angular in the \nversion 3.11 . \nThe upgrade drastically reduces the memory used on the phone. \nIt makes development of the Core Framework easier and more reliable and also makes it easier to keep on the latest version of Angular which means we can keep up to date and on a supported version.
\n
Currently, it is only used in the CHT admin app. Deprecated: rewrite to Angular.
\n"}],"name":"angularjs","title":"AngularJS","ring":"stop","quadrant":"languages-and-frameworks","body":"
AngularJS is an obsolete version of Angular.
\n
The CHT UI framework was upgraded from the deprecated AngularJS v1.6 to Angular in the \nversion 3.11 . \nThe upgrade drastically reduces the memory used on the phone. \nIt makes development of the Core Framework easier and more reliable and also makes it easier to keep on the latest version of Angular which means we can keep up to date and on a supported version.
\n
Currently, it is only used in the CHT admin app. Deprecated: rewrite to Angular.
\n","info":"","angleFraction":0.012735101148310113,"radiusFraction":0.06730186766963975,"release":"2023-09-12","tags":["framework","coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/angularjs.md"},{"flag":"default","featured":true,"revisions":[{"name":"aws","release":"2023-09-12","title":"AWS","ring":"adopt","quadrant":"platforms-and-aoe-services","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/aws.md","body":"
AWS (Amazon Web Services) is a cloud provider used for Medic hosted services.
\n"}],"name":"aws","title":"AWS","ring":"adopt","quadrant":"platforms-and-aoe-services","body":"
AWS (Amazon Web Services) is a cloud provider used for Medic hosted services.
\n","info":"","angleFraction":0.073814153957523,"radiusFraction":0.827684380224722,"release":"2023-09-12","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/aws.md"},{"flag":"default","featured":true,"revisions":[{"name":"bash","release":"2023-09-12","title":"Bash","ring":"stop","quadrant":"languages-and-frameworks","tags":["language","coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/bash.md","body":"
Bash is a Unix-shell and command language used for scripting. \nJavaScript is preferred due to being more testable and cross-platform compatible.
\n"}],"name":"bash","title":"Bash","ring":"stop","quadrant":"languages-and-frameworks","body":"
Bash is a Unix-shell and command language used for scripting. \nJavaScript is preferred due to being more testable and cross-platform compatible.
\n","info":"","angleFraction":0.10867939648672564,"radiusFraction":0.6715682017874569,"release":"2023-09-12","tags":["language","coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/bash.md"},{"flag":"new","featured":true,"revisions":[{"name":"chaijs","release":"2024-03-15","title":"Chai.js","ring":"adopt","quadrant":"languages-and-frameworks","tags":["framework","quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2024-03-15/chaijs.md","body":"
Chai.js is a BDD (Behavior-driven development) / TDD (Test-driven development) assertion library for node and the browser that can be paired with any JavaScript testing framework.
\n
Chai.js is used for unit testing in CHT Core.
\n"}],"name":"chaijs","title":"Chai.js","ring":"adopt","quadrant":"languages-and-frameworks","body":"
Chai.js is a BDD (Behavior-driven development) / TDD (Test-driven development) assertion library for node and the browser that can be paired with any JavaScript testing framework.
\n
Chai.js is used for unit testing in CHT Core.
\n","info":"","angleFraction":0.8438551871195994,"radiusFraction":0.21948337739734636,"release":"2024-03-15","tags":["framework","quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2024-03-15/chaijs.md"},{"flag":"default","featured":true,"revisions":[{"name":"continuous-discovery","release":"2023-09-12","title":"Continuous Discovery","ring":"adopt","quadrant":"methods-and-patterns","tags":["product-development"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/continuous-discovery.md","body":"
Continuous Discovery is the product development process used to build the CHT.
\n"}],"name":"continuous-discovery","title":"Continuous Discovery","ring":"adopt","quadrant":"methods-and-patterns","body":"
Continuous Discovery is the product development process used to build the CHT.
\n","info":"","angleFraction":0.9079230243013536,"radiusFraction":0.5824881599320415,"release":"2023-09-12","tags":["product-development"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/continuous-discovery.md"},{"flag":"default","featured":true,"revisions":[{"name":"continuous-integration","release":"2023-09-12","title":"Continuous Integration","ring":"adopt","quadrant":"methods-and-patterns","tags":["devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/continuous-integration.md","body":"
Continuous Integration (CI) is a software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run.
\n
The CHT has a fully automated end-to-end testing suite which is executed in CI and must pass before any code change is merged to the main branch.
\n"}],"name":"continuous-integration","title":"Continuous Integration","ring":"adopt","quadrant":"methods-and-patterns","body":"
Continuous Integration (CI) is a software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run.
\n
The CHT has a fully automated end-to-end testing suite which is executed in CI and must pass before any code change is merged to the main branch.
\n","info":"","angleFraction":0.3189747542351131,"radiusFraction":0.8782508542659282,"release":"2023-09-12","tags":["devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/continuous-integration.md"},{"flag":"default","featured":true,"revisions":[{"name":"couch2pg","release":"2023-09-12","title":"couch2pg","ring":"stop","quadrant":"tools","tags":["data"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/couch2pg.md","body":"
couch2pg is library and cli for one-way replicating CouchDB databases to PostgreSQL 9.4+.
\n
It is currently in maintenance. Look into cht-sync and cht-pipeline instead.
\n"}],"name":"couch2pg","title":"couch2pg","ring":"stop","quadrant":"tools","body":"
couch2pg is library and cli for one-way replicating CouchDB databases to PostgreSQL 9.4+.
\n
It is currently in maintenance. Look into cht-sync and cht-pipeline instead.
\n","info":"","angleFraction":0.8252935866975144,"radiusFraction":0.42594604128983193,"release":"2023-09-12","tags":["data"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/couch2pg.md"},{"flag":"default","featured":true,"revisions":[{"name":"couchdb","release":"2023-09-12","title":"CouchDB","ring":"adopt","quadrant":"tools","tags":["database"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/couchdb.md","body":"
Apache CouchDB is an open-source document-oriented NoSQL database. \nIt uses multiple formats and protocols to store, transfer, and process its data. It uses JSON to store data, JavaScript as its query language using MapReduce, and HTTP for an API.
\n
CouchDB is the primary database for the CHT. The CHT has a range of CouchDB databases for storing different types of data.
\n"}],"name":"couchdb","title":"CouchDB","ring":"adopt","quadrant":"tools","body":"
Apache CouchDB is an open-source document-oriented NoSQL database. \nIt uses multiple formats and protocols to store, transfer, and process its data. It uses JSON to store data, JavaScript as its query language using MapReduce, and HTTP for an API.
\n
CouchDB is the primary database for the CHT. The CHT has a range of CouchDB databases for storing different types of data.
\n","info":"","angleFraction":0.58927072984546,"radiusFraction":0.10875688494660718,"release":"2023-09-12","tags":["database"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/couchdb.md"},{"flag":"default","featured":true,"revisions":[{"name":"dbt","release":"2023-09-12","title":"dbt","ring":"assess","quadrant":"tools","tags":["data"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/dbt.md","body":"
dbt is an open-source tool and a commercial SaaS product that provides simple and effective transformation capabilities for data analysts.
\n
dbt uses SQL to model simple batch transformations, while it provides command-line tooling that encourages good engineering practices such as versioning, automated testing and deployment; essentially it implements SQL-based transformation modeling as code.\nIt currently supports multiple data sources, including Postgres.
\n
It the CHT context, dbt runs data tests and migrations for cht-sync .
\n"}],"name":"dbt","title":"dbt","ring":"assess","quadrant":"tools","body":"
dbt is an open-source tool and a commercial SaaS product that provides simple and effective transformation capabilities for data analysts.
\n
dbt uses SQL to model simple batch transformations, while it provides command-line tooling that encourages good engineering practices such as versioning, automated testing and deployment; essentially it implements SQL-based transformation modeling as code.\nIt currently supports multiple data sources, including Postgres.
\n
It the CHT context, dbt runs data tests and migrations for cht-sync .
\n","info":"","angleFraction":0.053158581530653226,"radiusFraction":0.8112832130809289,"release":"2023-09-12","tags":["data"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/dbt.md"},{"flag":"default","featured":true,"revisions":[{"name":"docker","release":"2023-09-12","title":"Docker","ring":"adopt","quadrant":"tools","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/docker.md","body":"
Docker is currently the most-used solution for creating and managing container-based infrastructures and deployments.
\n
Docker is a platform to build container images, distribute them and run them as an isolated process (using Linux kernel cgroups, network namespaces and custom mounts).
\n
It is used extensively for containerizing CHT products.
\n"}],"name":"docker","title":"Docker","ring":"adopt","quadrant":"tools","body":"
Docker is currently the most-used solution for creating and managing container-based infrastructures and deployments.
\n
Docker is a platform to build container images, distribute them and run them as an isolated process (using Linux kernel cgroups, network namespaces and custom mounts).
\n
It is used extensively for containerizing CHT products.
\n","info":"","angleFraction":0.6617583535900398,"radiusFraction":0.48698343078011463,"release":"2023-09-12","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/docker.md"},{"flag":"default","featured":true,"revisions":[{"name":"dot","release":"2023-09-12","title":"DOT","ring":"trial","quadrant":"tools","tags":["data"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/dot.md","body":"
Data Observation Toolkit (DOT) can be used to monitor data in order to flag problems with data integrity and scenarios that might need attention. \nTypical tests include checks for missing/duplicate and inconsistent data, outliers, and domain-specific signals such as a missed follow-up medical treatment after initial diagnosis.
\n
DOT includes a simple user interface for configuring the powerful DBT and Great Expectations libraries, as well as a database for storing and classifying data monitoring results.
\n"}],"name":"dot","title":"DOT","ring":"trial","quadrant":"tools","body":"
Data Observation Toolkit (DOT) can be used to monitor data in order to flag problems with data integrity and scenarios that might need attention. \nTypical tests include checks for missing/duplicate and inconsistent data, outliers, and domain-specific signals such as a missed follow-up medical treatment after initial diagnosis.
\n
DOT includes a simple user interface for configuring the powerful DBT and Great Expectations libraries, as well as a database for storing and classifying data monitoring results.
\n","info":"","angleFraction":0.8641825956173366,"radiusFraction":0.6908902010466063,"release":"2023-09-12","tags":["data"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/dot.md"},{"flag":"default","featured":true,"revisions":[{"name":"enketo","release":"2023-09-12","title":"Enketo","ring":"adopt","quadrant":"languages-and-frameworks","tags":["framework"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/enketo.md","body":"
Enketo is a 100% free and open-source JavaScript library used for rendering xforms as HTML with CSS and JS.
\n"}],"name":"enketo","title":"Enketo","ring":"adopt","quadrant":"languages-and-frameworks","body":"
Enketo is a 100% free and open-source JavaScript library used for rendering xforms as HTML with CSS and JS.
\n","info":"","angleFraction":0.21895400709823498,"radiusFraction":0.5658558719021218,"release":"2023-09-12","tags":["framework"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/enketo.md"},{"flag":"new","featured":true,"revisions":[{"name":"expressjs","release":"2024-03-15","title":"Express.js","ring":"adopt","quadrant":"languages-and-frameworks","tags":["framework"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2024-03-15/expressjs.md","body":"
Express.js is a back-end web application framework for building RESTful APIs with Node.js. It is free and open-source software under the MIT License.
\n
Express.js is used for building CHT Core API.
\n"}],"name":"expressjs","title":"Express.js","ring":"adopt","quadrant":"languages-and-frameworks","body":"
Express.js is a back-end web application framework for building RESTful APIs with Node.js. It is free and open-source software under the MIT License.
\n
Express.js is used for building CHT Core API.
\n","info":"","angleFraction":0.41666895645236735,"radiusFraction":0.5751076646277635,"release":"2024-03-15","tags":["framework"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2024-03-15/expressjs.md"},{"flag":"default","featured":true,"revisions":[{"name":"git","release":"2023-09-12","title":"git","ring":"adopt","quadrant":"tools","tags":["tool"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/git.md","body":"
Git is a free and open-source distributed version control system.
\n"}],"name":"git","title":"git","ring":"adopt","quadrant":"tools","body":"
Git is a free and open-source distributed version control system.
\n","info":"","angleFraction":0.989271323003823,"radiusFraction":0.11499600900306839,"release":"2023-09-12","tags":["tool"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/git.md"},{"flag":"default","featured":true,"revisions":[{"name":"github","release":"2023-09-12","title":"GitHub","ring":"adopt","quadrant":"platforms-and-aoe-services","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/github.md","body":"
GitHub is a code hosting platform for version control and collaboration.
\n
The CHT code is hosted in GitHub .
\n"}],"name":"github","title":"GitHub","ring":"adopt","quadrant":"platforms-and-aoe-services","body":"
GitHub is a code hosting platform for version control and collaboration.
\n
The CHT code is hosted in GitHub .
\n","info":"","angleFraction":0.6857952867170343,"radiusFraction":0.04132650535268945,"release":"2023-09-12","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/github.md"},{"flag":"default","featured":true,"revisions":[{"name":"github-actions","release":"2023-09-12","title":"GitHub Actions","ring":"adopt","quadrant":"tools","tags":["devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/github-actions.md","body":"
GitHub Actions is used extensively for Continuous Integration (CI) across CHT products including testing and releasing.
\n"}],"name":"github-actions","title":"GitHub Actions","ring":"adopt","quadrant":"tools","body":"
GitHub Actions is used extensively for Continuous Integration (CI) across CHT products including testing and releasing.
\n","info":"","angleFraction":0.01936291380119992,"radiusFraction":0.4980030539331546,"release":"2023-09-12","tags":["devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/github-actions.md"},{"flag":"default","featured":true,"revisions":[{"name":"grafana","release":"2023-09-13","title":"Grafana","ring":"adopt","quadrant":"tools","tags":["monitoring","alerting","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/grafana.md","body":"
Grafana is an open-source dashboard visualization and alerting software. \nIt is an industry standard for this task, and it is written in Go and NodeJS.\nIt provides a vast choice of different graph types that can be easily combined into dashboards for displaying any kind of numerical or time-based data.
\n
There is a free repository of pre-existing dashboards which greatly reduce the time to create new dashboards and alerts. \nIt can send alerts via email, Slack, SMS and many more.
\n
In the CHT, Grafana is usually used in conjunction with Prometheus for visualizing both application and infrastructure metrics via the CHT Watchdog.
\n
You can find more details about using Grafana with the CHT Watchdog in the related documentation .\n.
\n"},{"name":"grafana","release":"2023-09-12","title":"Grafana","ring":"assess","quadrant":"tools","tags":["monitoring","alerting"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/grafana.md","body":"
Grafana is being evaluated for CHT Watchdog.
\n"}],"name":"grafana","title":"Grafana","ring":"adopt","quadrant":"tools","body":"
Grafana is an open-source dashboard visualization and alerting software. \nIt is an industry standard for this task, and it is written in Go and NodeJS.\nIt provides a vast choice of different graph types that can be easily combined into dashboards for displaying any kind of numerical or time-based data.
\n
There is a free repository of pre-existing dashboards which greatly reduce the time to create new dashboards and alerts. \nIt can send alerts via email, Slack, SMS and many more.
\n
In the CHT, Grafana is usually used in conjunction with Prometheus for visualizing both application and infrastructure metrics via the CHT Watchdog.
\n
You can find more details about using Grafana with the CHT Watchdog in the related documentation .\n.
\n","info":"","angleFraction":0.39755794441237735,"radiusFraction":0.4954466901393433,"release":"2023-09-13","tags":["monitoring","alerting","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/grafana.md"},{"flag":"default","featured":false,"revisions":[{"name":"grunt","release":"2023-09-12","title":"Grunt","ring":"stop","quadrant":"tools","tags":["tool"],"featured":false,"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/grunt.md","body":"
Grunt was designed as a task-based command line build tool for JavaScript projects. Grunt is primarily used to automate tasks that need to be performed routinely.
\n
Deprecated: Use native JavaScript instead. Last available on: CHT 4.3 .
\n"}],"name":"grunt","title":"Grunt","ring":"stop","quadrant":"tools","body":"
Grunt was designed as a task-based command line build tool for JavaScript projects. Grunt is primarily used to automate tasks that need to be performed routinely.
\n
Deprecated: Use native JavaScript instead. Last available on: CHT 4.3 .
\n","info":"","angleFraction":0.27155367964454435,"radiusFraction":0.42380861527584224,"release":"2023-09-12","tags":["tool"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/grunt.md"},{"flag":"default","featured":true,"revisions":[{"name":"haproxy","release":"2023-09-12","title":"HAProxy","ring":"assess","quadrant":"tools","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/haproxy.md","body":"
HAProxy is a free reverse-proxy offering high availability, load balancing, and proxying for TCP and HTTP-based applications.
\n
It is used for audit logging and load balancing CouchDB cluster. Due for re-evaluation.
\n"}],"name":"haproxy","title":"HAProxy","ring":"assess","quadrant":"tools","body":"
HAProxy is a free reverse-proxy offering high availability, load balancing, and proxying for TCP and HTTP-based applications.
\n
It is used for audit logging and load balancing CouchDB cluster. Due for re-evaluation.
\n","info":"","angleFraction":0.9616851656662198,"radiusFraction":0.42898904886570133,"release":"2023-09-12","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/haproxy.md"},{"flag":"default","featured":true,"revisions":[{"name":"helm","release":"2023-09-13","title":"Helm","ring":"assess","quadrant":"platforms-and-aoe-services","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/helm.md","body":"
Helm is a package manager for Kubernetes. It simplifies the deployment of applications into a Kubernetes cluster and provides additional features such as versioning and rollbacks.
\n
We are assessing Helm for managing deployments within Kubernetes, which makes templating Kubernetes configuration files easy (also known as Helm charts).
\n"}],"name":"helm","title":"Helm","ring":"assess","quadrant":"platforms-and-aoe-services","body":"
Helm is a package manager for Kubernetes. It simplifies the deployment of applications into a Kubernetes cluster and provides additional features such as versioning and rollbacks.
\n
We are assessing Helm for managing deployments within Kubernetes, which makes templating Kubernetes configuration files easy (also known as Helm charts).
\n","info":"","angleFraction":0.6315648761955597,"radiusFraction":0.9291988044795652,"release":"2023-09-13","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/helm.md"},{"flag":"default","featured":true,"revisions":[{"name":"javascript","release":"2023-09-12","title":"JavaScript","ring":"adopt","quadrant":"languages-and-frameworks","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/javascript.md","body":"
JavaScript is the primary programming language used in the CHT.
\n"}],"name":"javascript","title":"JavaScript","ring":"adopt","quadrant":"languages-and-frameworks","body":"
JavaScript is the primary programming language used in the CHT.
\n","info":"","angleFraction":0.8614201878163157,"radiusFraction":0.2006592163999057,"release":"2023-09-12","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/javascript.md"},{"flag":"default","featured":true,"revisions":[{"name":"jest","release":"2023-09-13","title":"Jest","ring":"assess","quadrant":"languages-and-frameworks","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/jest.md","body":"
Jest is an open-source JS-based testing framework maintained by Facebook. \nIt is designed to be easy to use and provides a comprehensive set of tools for writing end-to-end, integration, and unit tests for JavaScript applications. \nIt is a complete and ready to set up JavaScript testing solution.
\n
In the CHT, Jest is used to test cht-interoperability .
\n
Advantages \n
\nEasy to use: Jest is intuitive and easy to set up, making it ideal for beginners and experienced developers. \nExtensive test coverage: Jest provides a complete set of tools for writing unit, integration, and end-to-end tests. \nIntegration with other frameworks: Jest integrates well with projects that use React, but can also be used with other JavaScript frameworks (Babel, TypeScript, Node, React, Angular, Vue and more). \nFast and efficient: Jest uses parallel test execution and other techniques to speed up test execution time. \nProvides testing support for asynchronous code. \nIt is maintained and well-documented, making it easy to learn. \nCode Coverage: Jest provides built-in code coverage reports to help developers identify areas not covered by tests. \n \n
Drawbacks \n
\nCompared to Jasmine and other frameworks, not many libraries and toolings are supported by Jest. \nPeople not comfortable with the Jest framework have asserted that the learning curve is pretty hard. \nLeveraging auto-mocking can make tests slow. This is because the more dependencies a module has, the more work needs to be done by Jest to mock it, which comes at the cost of performance. \nSnapshot testing with Jest is not so feasible for larger snapshot files containing thousands of lines. \nIts debugging capabilities need improvement. \n \n
Market - Current Adoption \n
Jest has over 10 million dependent repos on GitHub .\nProminent companies that reportedly adopt Jest in their tech stack are: Facebook, Airbnb, Spotify, The New York Times, Travel Perk, Twitter, Instagram, etc.\nStateofjs collects data from thousands of front-end developers in its annual surveys. \nHere’s their most recent ranking of most popular JS testing frameworks, sorted by their usage and Jest is at the top 3.
\n"}],"name":"jest","title":"Jest","ring":"assess","quadrant":"languages-and-frameworks","body":"
Jest is an open-source JS-based testing framework maintained by Facebook. \nIt is designed to be easy to use and provides a comprehensive set of tools for writing end-to-end, integration, and unit tests for JavaScript applications. \nIt is a complete and ready to set up JavaScript testing solution.
\n
In the CHT, Jest is used to test cht-interoperability .
\n
Advantages \n
\nEasy to use: Jest is intuitive and easy to set up, making it ideal for beginners and experienced developers. \nExtensive test coverage: Jest provides a complete set of tools for writing unit, integration, and end-to-end tests. \nIntegration with other frameworks: Jest integrates well with projects that use React, but can also be used with other JavaScript frameworks (Babel, TypeScript, Node, React, Angular, Vue and more). \nFast and efficient: Jest uses parallel test execution and other techniques to speed up test execution time. \nProvides testing support for asynchronous code. \nIt is maintained and well-documented, making it easy to learn. \nCode Coverage: Jest provides built-in code coverage reports to help developers identify areas not covered by tests. \n \n
Drawbacks \n
\nCompared to Jasmine and other frameworks, not many libraries and toolings are supported by Jest. \nPeople not comfortable with the Jest framework have asserted that the learning curve is pretty hard. \nLeveraging auto-mocking can make tests slow. This is because the more dependencies a module has, the more work needs to be done by Jest to mock it, which comes at the cost of performance. \nSnapshot testing with Jest is not so feasible for larger snapshot files containing thousands of lines. \nIts debugging capabilities need improvement. \n \n
Market - Current Adoption \n
Jest has over 10 million dependent repos on GitHub .\nProminent companies that reportedly adopt Jest in their tech stack are: Facebook, Airbnb, Spotify, The New York Times, Travel Perk, Twitter, Instagram, etc.\nStateofjs collects data from thousands of front-end developers in its annual surveys. \nHere’s their most recent ranking of most popular JS testing frameworks, sorted by their usage and Jest is at the top 3.
\n","info":"","angleFraction":0.13103990907660212,"radiusFraction":0.8621263582610639,"release":"2023-09-13","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/jest.md"},{"flag":"default","featured":true,"revisions":[{"name":"k3d","release":"2023-09-13","title":"k3d","ring":"adopt","quadrant":"tools","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/k3d.md","body":"
k3d is a lightweight wrapper to run k3s (Rancher Lab’s minimal Kubernetes distribution) in docker.
\n
k3d makes it very easy to create single- and multi-node k3s clusters in Docker, e.g. for local development on Kubernetes.
\n"},{"name":"k3d","release":"2023-09-12","title":"k3d","ring":"assess","quadrant":"tools","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/k3d.md","body":"
k3d is an orchestration tool which may be suitable for self-hosting. Under investigation.
\n"}],"name":"k3d","title":"k3d","ring":"adopt","quadrant":"tools","body":"
k3d is a lightweight wrapper to run k3s (Rancher Lab’s minimal Kubernetes distribution) in docker.
\n
k3d makes it very easy to create single- and multi-node k3s clusters in Docker, e.g. for local development on Kubernetes.
\n","info":"","angleFraction":0.04733298894663318,"radiusFraction":0.05309619886939032,"release":"2023-09-13","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/k3d.md"},{"flag":"default","featured":true,"revisions":[{"name":"k3s","release":"2023-09-13","title":"k3s","ring":"adopt","quadrant":"tools","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/k3s.md","body":"
k3s is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances.
\n"}],"name":"k3s","title":"k3s","ring":"adopt","quadrant":"tools","body":"
k3s is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances.
\n","info":"","angleFraction":0.6507878730298193,"radiusFraction":0.7425484378941443,"release":"2023-09-13","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/k3s.md"},{"flag":"default","featured":true,"revisions":[{"name":"klipfolio","release":"2023-09-13","title":"Klipfolio","ring":"stop","quadrant":"tools","tags":["dashboard","analytics"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/klipfolio.md","body":"
We recommend using Superset for building dashboards with the CHT, as it is an open-source tool.
\n
Read more about Data Flows for Analytics with the CHT in the CHT documentation .
\n"},{"name":"klipfolio","release":"2023-09-12","title":"Klipfolio","ring":"adopt","quadrant":"tools","tags":["dashboard","analytics"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/klipfolio.md","body":"
Klipfolio is a paid third-party SAAS option for building dashboards.
\n"}],"name":"klipfolio","title":"Klipfolio","ring":"stop","quadrant":"tools","body":"
We recommend using Superset for building dashboards with the CHT, as it is an open-source tool.
\n
Read more about Data Flows for Analytics with the CHT in the CHT documentation .
\n","info":"","angleFraction":0.19825437072990582,"radiusFraction":0.6867886262589629,"release":"2023-09-13","tags":["dashboard","analytics"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/klipfolio.md"},{"flag":"default","featured":true,"revisions":[{"name":"kubernetes","release":"2023-09-13","title":"Kubernetes","ring":"adopt","quadrant":"tools","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/kubernetes.md","body":"
Kubernetes , also known as k8s, is an open-source system for automating deployment, scaling, and management of containerized applications.
\n
Kubernetes has developed into the quasi-standard for container orchestration: Nearly every cloud provider provides managed Kubernetes, and even Docker Enterprise uses Kubernetes.
\n"},{"name":"kubernetes","release":"2023-09-12","title":"Kubernetes","ring":"assess","quadrant":"tools","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/kubernetes.md","body":"
Kubernetes platform is used for hosting the CHT. For self hosting partners we recommend lightweight implementations like k3d. For cloud deployments, use a Platform as a Service offering like Amazon EKS.
\n"}],"name":"kubernetes","title":"Kubernetes","ring":"adopt","quadrant":"tools","body":"
Kubernetes , also known as k8s, is an open-source system for automating deployment, scaling, and management of containerized applications.
\n
Kubernetes has developed into the quasi-standard for container orchestration: Nearly every cloud provider provides managed Kubernetes, and even Docker Enterprise uses Kubernetes.
\n","info":"","angleFraction":0.17664023496337578,"radiusFraction":0.49940883982374906,"release":"2023-09-13","tags":["infrastructure","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/kubernetes.md"},{"flag":"default","featured":true,"revisions":[{"name":"lua","release":"2023-09-12","title":"lua","ring":"assess","quadrant":"languages-and-frameworks","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/lua.md","body":"
Lua is used in HAProxy to mask credentials from being logged in the audit log. Because HAProxy is being assessed, this may be removed soon.
\n"}],"name":"lua","title":"lua","ring":"assess","quadrant":"languages-and-frameworks","body":"
Lua is used in HAProxy to mask credentials from being logged in the audit log. Because HAProxy is being assessed, this may be removed soon.
\n","info":"","angleFraction":0.24021845293435118,"radiusFraction":0.9908739025968103,"release":"2023-09-12","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/lua.md"},{"flag":"default","featured":true,"revisions":[{"name":"mochajs","release":"2023-09-12","title":"Mocha","ring":"adopt","quadrant":"languages-and-frameworks","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/mochajs.md","body":"
Mocha is a JavaScript test framework running on Node.js and in the browser.
\n
In the CHT, Mocha is used to run the unit tests .
\n"}],"name":"mochajs","title":"Mocha","ring":"adopt","quadrant":"languages-and-frameworks","body":"
Mocha is a JavaScript test framework running on Node.js and in the browser.
\n
In the CHT, Mocha is used to run the unit tests .
\n","info":"","angleFraction":0.023087951002555007,"radiusFraction":0.9883424068184528,"release":"2023-09-12","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/mochajs.md"},{"flag":"default","featured":true,"revisions":[{"name":"nginx","release":"2023-09-12","title":"Nginx","ring":"adopt","quadrant":"tools","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/nginx.md","body":"
Nginx is an open-source web server software used for reverse proxy, load balancing, and caching.
\n
It provides SSL termination for self-hosted CHT deployments.
\n"}],"name":"nginx","title":"Nginx","ring":"adopt","quadrant":"tools","body":"
Nginx is an open-source web server software used for reverse proxy, load balancing, and caching.
\n
It provides SSL termination for self-hosted CHT deployments.
\n","info":"","angleFraction":0.300528610128997,"radiusFraction":0.8689611477877246,"release":"2023-09-12","tags":["infrastructure"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/nginx.md"},{"flag":"default","featured":true,"revisions":[{"name":"nodejs","release":"2023-09-12","title":"node.js","ring":"adopt","quadrant":"languages-and-frameworks","tags":["framework"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/nodejs.md","body":"
Node.js is an open-source, no-browser JavaScript execution runtime.
\n
In the context of the CHT, it is used for services on the server like API and Sentinel as well as scripting.
\n"}],"name":"nodejs","title":"node.js","ring":"adopt","quadrant":"languages-and-frameworks","body":"
Node.js is an open-source, no-browser JavaScript execution runtime.
\n
In the context of the CHT, it is used for services on the server like API and Sentinel as well as scripting.
\n","info":"","angleFraction":0.37634658197063087,"radiusFraction":0.9526783590243231,"release":"2023-09-12","tags":["framework"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/nodejs.md"},{"flag":"default","featured":true,"revisions":[{"name":"npm","release":"2023-09-12","title":"npm","ring":"adopt","quadrant":"tools","tags":["tool"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/npm.md","body":"
npm is a library and registry for JavaScript software packages.
\n
It is used widely for CHT products.
\n"}],"name":"npm","title":"npm","ring":"adopt","quadrant":"tools","body":"
npm is a library and registry for JavaScript software packages.
\n
It is used widely for CHT products.
\n","info":"","angleFraction":0.2762089767773914,"radiusFraction":0.8384645450621326,"release":"2023-09-12","tags":["tool"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/npm.md"},{"flag":"default","featured":true,"revisions":[{"name":"postgres","release":"2023-09-12","title":"Postgres","ring":"adopt","quadrant":"tools","tags":["database"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/postgres.md","body":"
Postgres is primarily used as a data warehouse for analytics queries.
\n"}],"name":"postgres","title":"Postgres","ring":"adopt","quadrant":"tools","body":"
Postgres is primarily used as a data warehouse for analytics queries.
\n","info":"","angleFraction":0.7723371189342172,"radiusFraction":0.09348225825672674,"release":"2023-09-12","tags":["database"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/postgres.md"},{"flag":"default","featured":true,"revisions":[{"name":"pouchdb","release":"2023-09-12","title":"PouchDB","ring":"adopt","quadrant":"languages-and-frameworks","tags":["framework"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/pouchdb.md","body":"
PouchDB is an open-source JavaScript database inspired by Apache CouchDB that is designed to run within the browser.
\n
PouchDB is used for storing data on the phone in the CHT webapp to enable it to work offline seamlessly. \nIt is also used as a library for querying CouchDB from api, sentinel, and the admin app.
\n"}],"name":"pouchdb","title":"PouchDB","ring":"adopt","quadrant":"languages-and-frameworks","body":"
PouchDB is an open-source JavaScript database inspired by Apache CouchDB that is designed to run within the browser.
\n
PouchDB is used for storing data on the phone in the CHT webapp to enable it to work offline seamlessly. \nIt is also used as a library for querying CouchDB from api, sentinel, and the admin app.
\n","info":"","angleFraction":0.19678162048825443,"radiusFraction":0.3265125109327578,"release":"2023-09-12","tags":["framework"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/pouchdb.md"},{"flag":"default","featured":true,"revisions":[{"name":"prometheus","release":"2023-09-13","title":"Prometheus","ring":"adopt","quadrant":"tools","tags":["monitoring","alerting","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/prometheus.md","body":"
Prometheus is an open-source Time Series Database (TSDB) that was developed explicitly to do detailed longitudinal monitoring. \nIt also aggregates metrics and can automatically cull older data to save on CPU and disk space.
\n
Compared to other monitoring systems it stands out in its simple, still powerful and fully code-based configuration and the equally powerful service discovery mechanism.
\n
Prometheus integrates very well with Grafana which is the tool of choice for dashboard visualization in the CHT Watchdog.
\n
You can find more details about using Prometheus with the CHT Watchdog in the related documentation .
\n"},{"name":"prometheus","release":"2023-09-12","title":"Prometheus","ring":"assess","quadrant":"tools","tags":["monitoring","alerting"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/prometheus.md","body":"
Being evaluated for CHT Watchdog.
\n"}],"name":"prometheus","title":"Prometheus","ring":"adopt","quadrant":"tools","body":"
Prometheus is an open-source Time Series Database (TSDB) that was developed explicitly to do detailed longitudinal monitoring. \nIt also aggregates metrics and can automatically cull older data to save on CPU and disk space.
\n
Compared to other monitoring systems it stands out in its simple, still powerful and fully code-based configuration and the equally powerful service discovery mechanism.
\n
Prometheus integrates very well with Grafana which is the tool of choice for dashboard visualization in the CHT Watchdog.
\n
You can find more details about using Prometheus with the CHT Watchdog in the related documentation .
\n","info":"","angleFraction":0.04117708443062229,"radiusFraction":0.9415945597297499,"release":"2023-09-13","tags":["monitoring","alerting","devops"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/prometheus.md"},{"flag":"default","featured":true,"revisions":[{"name":"protractor","release":"2023-09-12","title":"Protractor","ring":"stop","quadrant":"languages-and-frameworks","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/protractor.md","body":"
Protractor is an end-to-end test framework for Angular and AngularJS applications.
\n
Currently deprecated in the context of the CHT. All the end-to-end tests were rewritten to WebDriverIO.
\n
The primary motivation to migrate from Protractor to WebDriverIO is that the Angular team \nannounced in April, 2021 that Protractor will no longer be supported.
\n"}],"name":"protractor","title":"Protractor","ring":"stop","quadrant":"languages-and-frameworks","body":"
Protractor is an end-to-end test framework for Angular and AngularJS applications.
\n
Currently deprecated in the context of the CHT. All the end-to-end tests were rewritten to WebDriverIO.
\n
The primary motivation to migrate from Protractor to WebDriverIO is that the Angular team \nannounced in April, 2021 that Protractor will no longer be supported.
\n","info":"","angleFraction":0.9505904954264139,"radiusFraction":0.49059277761771125,"release":"2023-09-12","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/protractor.md"},{"flag":"default","featured":true,"revisions":[{"name":"pwa","release":"2023-09-12","title":"PWA","ring":"adopt","quadrant":"methods-and-patterns","tags":["technique"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/pwa.md","body":"
A progressive web application (PWA) is a type of application software delivered through the web, built using common web technologies including HTML, CSS, and JavaScript. \nIt is intended to work on any platform with a standards-compliant browser, including desktop and mobile devices.
\n
The PWA is followed for CHT webapp to allow offline first capability .
\n"}],"name":"pwa","title":"PWA","ring":"adopt","quadrant":"methods-and-patterns","body":"
A progressive web application (PWA) is a type of application software delivered through the web, built using common web technologies including HTML, CSS, and JavaScript. \nIt is intended to work on any platform with a standards-compliant browser, including desktop and mobile devices.
\n
The PWA is followed for CHT webapp to allow offline first capability .
\n","info":"","angleFraction":0.5268978371587922,"radiusFraction":0.28194104827896926,"release":"2023-09-12","tags":["technique"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/pwa.md"},{"flag":"default","featured":true,"revisions":[{"name":"python","release":"2023-09-12","title":"Python","ring":"stop","quadrant":"languages-and-frameworks","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/python.md","body":"
Python is a programming language used currently only to convert xls forms to xforms in \ncht-conf .
\n"}],"name":"python","title":"Python","ring":"stop","quadrant":"languages-and-frameworks","body":"
Python is a programming language used currently only to convert xls forms to xforms in \ncht-conf .
\n","info":"","angleFraction":0.5200134868799957,"radiusFraction":0.5778199876053185,"release":"2023-09-12","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/python.md"},{"flag":"default","featured":true,"revisions":[{"name":"quality-assistance","release":"2023-09-12","title":"Quality Assistance","ring":"adopt","quadrant":"methods-and-patterns","tags":["product-development","quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/quality-assistance.md","body":"
Quality Assistance is the process used for ensuring the quality of the CHT.
\n"}],"name":"quality-assistance","title":"Quality Assistance","ring":"adopt","quadrant":"methods-and-patterns","body":"
Quality Assistance is the process used for ensuring the quality of the CHT.
\n","info":"","angleFraction":0.6953322463429588,"radiusFraction":0.45432023221483675,"release":"2023-09-12","tags":["product-development","quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/quality-assistance.md"},{"flag":"new","featured":true,"revisions":[{"name":"sinonjs","release":"2024-03-15","title":"Sinon.JS","ring":"adopt","quadrant":"languages-and-frameworks","tags":["framework","quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2024-03-15/sinonjs.md","body":"
Sinon.JS is a JavaScript library that provides standalone test spies, stubs, and mocks.
\n
Sinon.JS is used for unit testing in CHT Core.
\n"}],"name":"sinonjs","title":"Sinon.JS","ring":"adopt","quadrant":"languages-and-frameworks","body":"
Sinon.JS is a JavaScript library that provides standalone test spies, stubs, and mocks.
\n
Sinon.JS is used for unit testing in CHT Core.
\n","info":"","angleFraction":0.7327961037088568,"radiusFraction":0.4805163534507375,"release":"2024-03-15","tags":["framework","quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2024-03-15/sinonjs.md"},{"flag":"default","featured":true,"revisions":[{"name":"sonarcloud","release":"2023-09-13","title":"SonarCloud","ring":"adopt","quadrant":"tools","tags":["ci/cd","quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/sonarcloud.md","body":"
Sonar static analysis supports development by providing feedback on code quality and security issues.
\n
SonarCloud is the cloud-based solution of Sonar. \nIt can be enabled on any public GitHub repository in the Medic organization and must pass on all new code.
\n
You can find more details about using SonarCloud with the CHT\nin the related documentation .
\n"}],"name":"sonarcloud","title":"SonarCloud","ring":"adopt","quadrant":"tools","body":"
Sonar static analysis supports development by providing feedback on code quality and security issues.
\n
SonarCloud is the cloud-based solution of Sonar. \nIt can be enabled on any public GitHub repository in the Medic organization and must pass on all new code.
\n
You can find more details about using SonarCloud with the CHT\nin the related documentation .
\n","info":"","angleFraction":0.3919860705874616,"radiusFraction":0.8896655112328504,"release":"2023-09-13","tags":["ci/cd","quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-13/sonarcloud.md"},{"flag":"default","featured":true,"revisions":[{"name":"superset","release":"2023-09-12","title":"Superset","ring":"adopt","quadrant":"tools","tags":["dashboard","analytics"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/superset.md","body":"
Superset is an open-source data exploration and visualization platform.
\n
In the context of the CHT, Superset is used for health care analytics.
\n"}],"name":"superset","title":"Superset","ring":"adopt","quadrant":"tools","body":"
Superset is an open-source data exploration and visualization platform.
\n
In the context of the CHT, Superset is used for health care analytics.
\n","info":"","angleFraction":0.2374585841415151,"radiusFraction":0.640400400132668,"release":"2023-09-12","tags":["dashboard","analytics"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/superset.md"},{"flag":"default","featured":true,"revisions":[{"name":"typescript","release":"2023-09-12","title":"TypeScript","ring":"adopt","quadrant":"languages-and-frameworks","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/typescript.md","body":"
TypeScript is a language that gets transpiled to native JavaScript code.
\n
It is used a lot in CHT webapp with the potential to use it more widely.
\n"}],"name":"typescript","title":"TypeScript","ring":"adopt","quadrant":"languages-and-frameworks","body":"
TypeScript is a language that gets transpiled to native JavaScript code.
\n
It is used a lot in CHT webapp with the potential to use it more widely.
\n","info":"","angleFraction":0.05877847234483147,"radiusFraction":0.10532852543796789,"release":"2023-09-12","tags":["coding"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/typescript.md"},{"flag":"default","featured":true,"revisions":[{"name":"webdriverio","release":"2023-09-12","title":"WebDriverIO","ring":"adopt","quadrant":"languages-and-frameworks","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/webdriverio.md","body":"
WebDriverIO is UI testing framework used for end-to-end testing in web applications.
\n
In the CHT Core Framework, WebDriverIO is used to run the e2e tests .
\n
WebDriverIO was influenced by a lot of Protractor's design decisions which is why it was the closest framework to migrate over.
\n
Advantages \n
\nOpen source \nNumerous integrations to tools \nFast and easy location of page elements \nGood documentation \n \n
Drawbacks \n
\nIntegrations with reports (specifically allure) frameworks is not straightforward. \n \n
The migration from Protractor was finalized in July 2023.
\n"}],"name":"webdriverio","title":"WebDriverIO","ring":"adopt","quadrant":"languages-and-frameworks","body":"
WebDriverIO is UI testing framework used for end-to-end testing in web applications.
\n
In the CHT Core Framework, WebDriverIO is used to run the e2e tests .
\n
WebDriverIO was influenced by a lot of Protractor's design decisions which is why it was the closest framework to migrate over.
\n
Advantages \n
\nOpen source \nNumerous integrations to tools \nFast and easy location of page elements \nGood documentation \n \n
Drawbacks \n
\nIntegrations with reports (specifically allure) frameworks is not straightforward. \n \n
The migration from Protractor was finalized in July 2023.
\n","info":"","angleFraction":0.8948846985257952,"radiusFraction":0.07686804807604086,"release":"2023-09-12","tags":["quality"],"fileName":"/Users/andra/Documents/GitHub/cht-tech-radar/radar/2023-09-12/webdriverio.md"}],"releases":["2023-09-12","2023-09-13","2024-03-15"]}
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
index d0551fb..ab86eb6 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -2,222 +2,237 @@
/cht-tech-radar-contributors/index.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/platforms-and-aoe-services/amazon-eks.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/platforms-and-aoe-services/android-dev.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/languages-and-frameworks/angular.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/languages-and-frameworks/angularjs.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/platforms-and-aoe-services/aws.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/languages-and-frameworks/bash.html
- 2024-01-26
+ 2024-03-11
+ weekly
+
+
+ /cht-tech-radar-contributors/languages-and-frameworks/chaijs.html
+ 2024-03-11
weekly
/cht-tech-radar-contributors/methods-and-patterns/continuous-discovery.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/methods-and-patterns/continuous-integration.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/couch2pg.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/couchdb.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/dbt.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/docker.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/dot.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/languages-and-frameworks/enketo.html
- 2024-01-26
+ 2024-03-11
+ weekly
+
+
+ /cht-tech-radar-contributors/languages-and-frameworks/expressjs.html
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/git.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/platforms-and-aoe-services/github.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/github-actions.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/grafana.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/grunt.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/haproxy.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/platforms-and-aoe-services/helm.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/languages-and-frameworks/javascript.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/languages-and-frameworks/jest.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/k3d.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/k3s.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/klipfolio.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/kubernetes.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/languages-and-frameworks/lua.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/languages-and-frameworks/mochajs.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/nginx.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/languages-and-frameworks/nodejs.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/npm.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/postgres.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/languages-and-frameworks/pouchdb.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/prometheus.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/languages-and-frameworks/protractor.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/methods-and-patterns/pwa.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/languages-and-frameworks/python.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/methods-and-patterns/quality-assistance.html
- 2024-01-26
+ 2024-03-11
+ weekly
+
+
+ /cht-tech-radar-contributors/languages-and-frameworks/sinonjs.html
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/sonarcloud.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/tools/superset.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/languages-and-frameworks/typescript.html
- 2024-01-26
+ 2024-03-11
weekly
/cht-tech-radar-contributors/languages-and-frameworks/webdriverio.html
- 2024-01-26
+ 2024-03-11
weekly
\ No newline at end of file
diff --git a/static/js/main.552302b5.js b/static/js/main.552302b5.js
new file mode 100644
index 0000000..d7c24db
--- /dev/null
+++ b/static/js/main.552302b5.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.552302b5.js.LICENSE.txt */
+!function(){var e={5230:function(e){e.exports=function(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++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){l=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(l)throw a}}}},e.exports.__esModule=!0,e.exports.default=e.exports},1001:function(e,t,n){var r=n(3336),i=n(1903),o=n(4097);e.exports=function(e){var t=i();return function(){var n,i=r(e);if(t){var a=r(this).constructor;n=Reflect.construct(i,arguments,a)}else n=i.apply(this,arguments);return o(this,n)}},e.exports.__esModule=!0,e.exports.default=e.exports},3674:function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.__esModule=!0,e.exports.default=e.exports},9282:function(e,t,n){var r=n(834);function i(){return"undefined"!==typeof Reflect&&Reflect.get?(e.exports=i=Reflect.get,e.exports.__esModule=!0,e.exports.default=e.exports):(e.exports=i=function(e,t,n){var i=r(e,t);if(i){var o=Object.getOwnPropertyDescriptor(i,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},e.exports.__esModule=!0,e.exports.default=e.exports),i.apply(this,arguments)}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports},3336:function(e){function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},6406:function(e,t,n){var r=n(9480);e.exports=function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&r(e,t)},e.exports.__esModule=!0,e.exports.default=e.exports},4213:function(e){e.exports=function(e){return-1!==Function.toString.call(e).indexOf("[native code]")},e.exports.__esModule=!0,e.exports.default=e.exports},1903:function(e){e.exports=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}},e.exports.__esModule=!0,e.exports.default=e.exports},1238:function(e){e.exports=function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)},e.exports.__esModule=!0,e.exports.default=e.exports},5958:function(e){e.exports=function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(l){s=!0,i=l}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}},e.exports.__esModule=!0,e.exports.default=e.exports},8092:function(e){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports},8819:function(e){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports},3137:function(e,t,n){var r=n(3674);function i(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}e.exports=function(e){for(var t=1;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o},e.exports.__esModule=!0,e.exports.default=e.exports},6421:function(e){e.exports=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i},e.exports.__esModule=!0,e.exports.default=e.exports},4097:function(e,t,n){var r=n(829).default,i=n(5825);e.exports=function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return i(e)},e.exports.__esModule=!0,e.exports.default=e.exports},1170:function(e,t,n){var r=n(829).default;function i(){"use strict";e.exports=i=function(){return t},e.exports.__esModule=!0,e.exports.default=e.exports;var t={},n=Object.prototype,o=n.hasOwnProperty,a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",l=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(N){c=function(e,t,n){return e[t]=n}}function f(e,t,n,r){var i=t&&t.prototype instanceof p?t:p,o=Object.create(i.prototype),a=new O(r||[]);return o._invoke=function(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=k(a,n);if(s){if(s===h)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=d(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===h)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}(e,n,a),o}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(N){return{type:"throw",arg:N}}}t.wrap=f;var h={};function p(){}function m(){}function v(){}var g={};c(g,s,(function(){return this}));var y=Object.getPrototypeOf,b=y&&y(y(C([])));b&&b!==n&&o.call(b,s)&&(g=b);var w=v.prototype=p.prototype=Object.create(g);function x(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function _(e,t){function n(i,a,s,l){var u=d(e[i],e,a);if("throw"!==u.type){var c=u.arg,f=c.value;return f&&"object"==r(f)&&o.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,s,l)}),(function(e){n("throw",e,s,l)})):t.resolve(f).then((function(e){c.value=e,s(c)}),(function(e){return n("throw",e,s,l)}))}l(u.arg)}var i;this._invoke=function(e,r){function o(){return new t((function(t,i){n(e,r,t,i)}))}return i=i?i.then(o,o):o()}}function k(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,k(e,t),"throw"===t.method))return h;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var r=d(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,h;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,h):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function S(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 E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function C(e){if(e){var t=e[s];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n=0;--r){var i=this.tryEntries[r],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var s=o.call(i,"catchLoc"),l=o.call(i,"finallyLoc");if(s&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),h}},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;E(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:C(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),h}},t}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports},9480:function(e){function t(n,r){return e.exports=t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},8120:function(e,t,n){var r=n(4042),i=n(5958),o=n(665),a=n(8092);e.exports=function(e,t){return r(e)||i(e,t)||o(e,t)||a()},e.exports.__esModule=!0,e.exports.default=e.exports},834:function(e,t,n){var r=n(3336);e.exports=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=r(e)););return e},e.exports.__esModule=!0,e.exports.default=e.exports},4183:function(e,t,n){var r=n(7359),i=n(1238),o=n(665),a=n(8819);e.exports=function(e){return r(e)||i(e)||o(e)||a()},e.exports.__esModule=!0,e.exports.default=e.exports},829:function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},665:function(e,t,n){var r=n(5230);e.exports=function(e,t){if(e){if("string"===typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports},4060:function(e,t,n){var r=n(3336),i=n(9480),o=n(4213),a=n(7754);function s(t){var n="function"===typeof Map?new Map:void 0;return e.exports=s=function(e){if(null===e||!o(e))return e;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof n){if(n.has(e))return n.get(e);n.set(e,t)}function t(){return a(e,arguments,r(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),i(t,e)},e.exports.__esModule=!0,e.exports.default=e.exports,s(t)}e.exports=s,e.exports.__esModule=!0,e.exports.default=e.exports},2317:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function i(){for(var e=[],t=0;t>>0;for(t=0;t0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+r}var R=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,I=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,F={},U={};function q(e,t,n,r){var i=r;"string"===typeof r&&(i=function(){return this[r]()}),e&&(U[e]=i),t&&(U[t[0]]=function(){return D(i.apply(this,arguments),t[1],t[2])}),n&&(U[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function z(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function B(e){var t,n,r=e.match(R);for(t=0,n=r.length;t=0&&I.test(e);)e=e.replace(I,r),I.lastIndex=0,n-=1;return e}var Y={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function W(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(R).map((function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e})).join(""),this._longDateFormat[e])}var G="Invalid date";function $(){return this._invalidDate}var Q="%d",X=/\d{1,2}/;function Z(e){return this._ordinal.replace("%d",e)}var K={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function J(e,t,n,r){var i=this._relativeTime[n];return N(i)?i(e,t,n,r):i.replace(/%d/i,e)}function ee(e,t){var n=this._relativeTime[e>0?"future":"past"];return N(n)?n(t):n.replace(/%s/i,t)}var te={};function ne(e,t){var n=e.toLowerCase();te[n]=te[n+"s"]=te[t]=e}function re(e){return"string"===typeof e?te[e]||te[e.toLowerCase()]:void 0}function ie(e){var t,n,r={};for(n in e)s(e,n)&&(t=re(n))&&(r[t]=e[n]);return r}var oe={};function ae(e,t){oe[e]=t}function se(e){var t,n=[];for(t in e)s(e,t)&&n.push({unit:t,priority:oe[t]});return n.sort((function(e,t){return e.priority-t.priority})),n}function le(e){return e%4===0&&e%100!==0||e%400===0}function ue(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function ce(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=ue(t)),n}function fe(e,t){return function(n){return null!=n?(he(this,e,n),r.updateOffset(this,t),this):de(this,e)}}function de(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function he(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&le(e.year())&&1===e.month()&&29===e.date()?(n=ce(n),e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Je(n,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function pe(e){return N(this[e=re(e)])?this[e]():this}function me(e,t){if("object"===typeof e){var n,r=se(e=ie(e)),i=r.length;for(n=0;n68?1900:2e3)};var vt=fe("FullYear",!0);function gt(){return le(this.year())}function yt(e,t,n,r,i,o,a){var s;return e<100&&e>=0?(s=new Date(e+400,t,n,r,i,o,a),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,n,r,i,o,a),s}function bt(e){var t,n;return e<100&&e>=0?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function wt(e,t,n){var r=7+t-n;return-(7+bt(e,0,r).getUTCDay()-t)%7+r-1}function xt(e,t,n,r,i){var o,a,s=1+7*(t-1)+(7+n-r)%7+wt(e,r,i);return s<=0?a=mt(o=e-1)+s:s>mt(e)?(o=e+1,a=s-mt(e)):(o=e,a=s),{year:o,dayOfYear:a}}function _t(e,t,n){var r,i,o=wt(e.year(),t,n),a=Math.floor((e.dayOfYear()-o-1)/7)+1;return a<1?r=a+kt(i=e.year()-1,t,n):a>kt(e.year(),t,n)?(r=a-kt(e.year(),t,n),i=e.year()+1):(i=e.year(),r=a),{week:r,year:i}}function kt(e,t,n){var r=wt(e,t,n),i=wt(e+1,t,n);return(mt(e)-r+i)/7}function St(e){return _t(e,this._week.dow,this._week.doy).week}q("w",["ww",2],"wo","week"),q("W",["WW",2],"Wo","isoWeek"),ne("week","w"),ne("isoWeek","W"),ae("week",5),ae("isoWeek",5),Le("w",_e),Le("ww",_e,ye),Le("W",_e),Le("WW",_e,ye),qe(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=ce(e)}));var Et={dow:0,doy:6};function Ot(){return this._week.dow}function Ct(){return this._week.doy}function Tt(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Nt(e){var t=_t(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Mt(e,t){return"string"!==typeof e?e:isNaN(e)?"number"===typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}function At(e,t){return"string"===typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function jt(e,t){return e.slice(t,7).concat(e.slice(0,t))}q("d",0,"do","day"),q("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),q("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),q("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),q("e",0,0,"weekday"),q("E",0,0,"isoWeekday"),ne("day","d"),ne("weekday","e"),ne("isoWeekday","E"),ae("day",11),ae("weekday",11),ae("isoWeekday",11),Le("d",_e),Le("e",_e),Le("E",_e),Le("dd",(function(e,t){return t.weekdaysMinRegex(e)})),Le("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),Le("dddd",(function(e,t){return t.weekdaysRegex(e)})),qe(["dd","ddd","dddd"],(function(e,t,n,r){var i=n._locale.weekdaysParse(e,r,n._strict);null!=i?t.d=i:v(n).invalidWeekday=e})),qe(["d","e","E"],(function(e,t,n,r){t[r]=ce(e)}));var Pt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Lt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Dt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Rt=Pe,It=Pe,Ft=Pe;function Ut(e,t){var n=o(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?jt(n,this._week.dow):e?n[e.day()]:n}function qt(e){return!0===e?jt(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function zt(e){return!0===e?jt(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function Bt(e,t,n){var r,i,o,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)o=p([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=Be.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Be.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Be.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=Be.call(this._weekdaysParse,a))||-1!==(i=Be.call(this._shortWeekdaysParse,a))||-1!==(i=Be.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Be.call(this._shortWeekdaysParse,a))||-1!==(i=Be.call(this._weekdaysParse,a))||-1!==(i=Be.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Be.call(this._minWeekdaysParse,a))||-1!==(i=Be.call(this._weekdaysParse,a))||-1!==(i=Be.call(this._shortWeekdaysParse,a))?i:null}function Ht(e,t,n){var r,i,o;if(this._weekdaysParseExact)return Bt.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(i=p([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(o="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[r]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}}function Vt(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=Mt(e,this.localeData()),this.add(e-t,"d")):t}function Yt(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function Wt(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=At(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function Gt(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Xt.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(s(this,"_weekdaysRegex")||(this._weekdaysRegex=Rt),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function $t(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Xt.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(s(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=It),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Qt(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Xt.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(s(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Ft),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Xt(){function e(e,t){return t.length-e.length}var t,n,r,i,o,a=[],s=[],l=[],u=[];for(t=0;t<7;t++)n=p([2e3,1]).day(t),r=Ie(this.weekdaysMin(n,"")),i=Ie(this.weekdaysShort(n,"")),o=Ie(this.weekdays(n,"")),a.push(r),s.push(i),l.push(o),u.push(r),u.push(i),u.push(o);a.sort(e),s.sort(e),l.sort(e),u.sort(e),this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Zt(){return this.hours()%12||12}function Kt(){return this.hours()||24}function Jt(e,t){q(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function en(e,t){return t._meridiemParse}function tn(e){return"p"===(e+"").toLowerCase().charAt(0)}q("H",["HH",2],0,"hour"),q("h",["hh",2],0,Zt),q("k",["kk",2],0,Kt),q("hmm",0,0,(function(){return""+Zt.apply(this)+D(this.minutes(),2)})),q("hmmss",0,0,(function(){return""+Zt.apply(this)+D(this.minutes(),2)+D(this.seconds(),2)})),q("Hmm",0,0,(function(){return""+this.hours()+D(this.minutes(),2)})),q("Hmmss",0,0,(function(){return""+this.hours()+D(this.minutes(),2)+D(this.seconds(),2)})),Jt("a",!0),Jt("A",!1),ne("hour","h"),ae("hour",13),Le("a",en),Le("A",en),Le("H",_e),Le("h",_e),Le("k",_e),Le("HH",_e,ye),Le("hh",_e,ye),Le("kk",_e,ye),Le("hmm",ke),Le("hmmss",Se),Le("Hmm",ke),Le("Hmmss",Se),Ue(["H","HH"],We),Ue(["k","kk"],(function(e,t,n){var r=ce(e);t[We]=24===r?0:r})),Ue(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),Ue(["h","hh"],(function(e,t,n){t[We]=ce(e),v(n).bigHour=!0})),Ue("hmm",(function(e,t,n){var r=e.length-2;t[We]=ce(e.substr(0,r)),t[Ge]=ce(e.substr(r)),v(n).bigHour=!0})),Ue("hmmss",(function(e,t,n){var r=e.length-4,i=e.length-2;t[We]=ce(e.substr(0,r)),t[Ge]=ce(e.substr(r,2)),t[$e]=ce(e.substr(i)),v(n).bigHour=!0})),Ue("Hmm",(function(e,t,n){var r=e.length-2;t[We]=ce(e.substr(0,r)),t[Ge]=ce(e.substr(r))})),Ue("Hmmss",(function(e,t,n){var r=e.length-4,i=e.length-2;t[We]=ce(e.substr(0,r)),t[Ge]=ce(e.substr(r,2)),t[$e]=ce(e.substr(i))}));var nn=/[ap]\.?m?\.?/i,rn=fe("Hours",!0);function on(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}var an,sn={calendar:P,longDateFormat:Y,invalidDate:G,ordinal:Q,dayOfMonthOrdinalParse:X,relativeTime:K,months:et,monthsShort:tt,week:Et,weekdays:Pt,weekdaysMin:Dt,weekdaysShort:Lt,meridiemParse:nn},ln={},un={};function cn(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n0;){if(r=pn(i.slice(0,t).join("-")))return r;if(n&&n.length>=t&&cn(i,n)>=t-1)break;t--}o++}return an}function hn(e){return null!=e.match("^[^/\\\\]*$")}function pn(t){var n=null;if(void 0===ln[t]&&e&&e.exports&&hn(t))try{n=an._abbr,Object(function(){var e=new Error("Cannot find module 'undefined'");throw e.code="MODULE_NOT_FOUND",e}()),mn(n)}catch(r){ln[t]=null}return ln[t]}function mn(e,t){var n;return e&&((n=u(t)?yn(e):vn(e,t))?an=n:"undefined"!==typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),an._abbr}function vn(e,t){if(null!==t){var n,r=sn;if(t.abbr=e,null!=ln[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=ln[e]._config;else if(null!=t.parentLocale)if(null!=ln[t.parentLocale])r=ln[t.parentLocale]._config;else{if(null==(n=pn(t.parentLocale)))return un[t.parentLocale]||(un[t.parentLocale]=[]),un[t.parentLocale].push({name:e,config:t}),null;r=n._config}return ln[e]=new j(A(r,t)),un[e]&&un[e].forEach((function(e){vn(e.name,e.config)})),mn(e),ln[e]}return delete ln[e],null}function gn(e,t){if(null!=t){var n,r,i=sn;null!=ln[e]&&null!=ln[e].parentLocale?ln[e].set(A(ln[e]._config,t)):(null!=(r=pn(e))&&(i=r._config),t=A(i,t),null==r&&(t.abbr=e),(n=new j(t)).parentLocale=ln[e],ln[e]=n),mn(e)}else null!=ln[e]&&(null!=ln[e].parentLocale?(ln[e]=ln[e].parentLocale,e===mn()&&mn(e)):null!=ln[e]&&delete ln[e]);return ln[e]}function yn(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return an;if(!o(e)){if(t=pn(e))return t;e=[e]}return dn(e)}function bn(){return O(ln)}function wn(e){var t,n=e._a;return n&&-2===v(e).overflow&&(t=n[Ve]<0||n[Ve]>11?Ve:n[Ye]<1||n[Ye]>Je(n[He],n[Ve])?Ye:n[We]<0||n[We]>24||24===n[We]&&(0!==n[Ge]||0!==n[$e]||0!==n[Qe])?We:n[Ge]<0||n[Ge]>59?Ge:n[$e]<0||n[$e]>59?$e:n[Qe]<0||n[Qe]>999?Qe:-1,v(e)._overflowDayOfYear&&(tYe)&&(t=Ye),v(e)._overflowWeeks&&-1===t&&(t=Xe),v(e)._overflowWeekday&&-1===t&&(t=Ze),v(e).overflow=t),e}var xn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_n=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,kn=/Z|[+-]\d\d(?::?\d\d)?/,Sn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],En=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],On=/^\/?Date\((-?\d+)/i,Cn=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Tn={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Nn(e){var t,n,r,i,o,a,s=e._i,l=xn.exec(s)||_n.exec(s),u=Sn.length,c=En.length;if(l){for(v(e).iso=!0,t=0,n=u;tmt(o)||0===e._dayOfYear)&&(v(e)._overflowDayOfYear=!0),n=bt(o,0,e._dayOfYear),e._a[Ve]=n.getUTCMonth(),e._a[Ye]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=a[t]=r[t];for(;t<7;t++)e._a[t]=a[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[We]&&0===e._a[Ge]&&0===e._a[$e]&&0===e._a[Qe]&&(e._nextDay=!0,e._a[We]=0),e._d=(e._useUTC?bt:yt).apply(null,a),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[We]=24),e._w&&"undefined"!==typeof e._w.d&&e._w.d!==i&&(v(e).weekdayMismatch=!0)}}function qn(e){var t,n,r,i,o,a,s,l,u;null!=(t=e._w).GG||null!=t.W||null!=t.E?(o=1,a=4,n=In(t.GG,e._a[He],_t(Qn(),1,4).year),r=In(t.W,1),((i=In(t.E,1))<1||i>7)&&(l=!0)):(o=e._locale._week.dow,a=e._locale._week.doy,u=_t(Qn(),o,a),n=In(t.gg,e._a[He],u.year),r=In(t.w,u.week),null!=t.d?((i=t.d)<0||i>6)&&(l=!0):null!=t.e?(i=t.e+o,(t.e<0||t.e>6)&&(l=!0)):i=o),r<1||r>kt(n,o,a)?v(e)._overflowWeeks=!0:null!=l?v(e)._overflowWeekday=!0:(s=xt(n,r,i,o,a),e._a[He]=s.year,e._dayOfYear=s.dayOfYear)}function zn(e){if(e._f!==r.ISO_8601)if(e._f!==r.RFC_2822){e._a=[],v(e).empty=!0;var t,n,i,o,a,s,l,u=""+e._i,c=u.length,f=0;for(l=(i=V(e._f,e._locale).match(R)||[]).length,t=0;t0&&v(e).unusedInput.push(a),u=u.slice(u.indexOf(n)+n.length),f+=n.length),U[o]?(n?v(e).empty=!1:v(e).unusedTokens.push(o),ze(o,n,e)):e._strict&&!n&&v(e).unusedTokens.push(o);v(e).charsLeftOver=c-f,u.length>0&&v(e).unusedInput.push(u),e._a[We]<=12&&!0===v(e).bigHour&&e._a[We]>0&&(v(e).bigHour=void 0),v(e).parsedDateParts=e._a.slice(0),v(e).meridiem=e._meridiem,e._a[We]=Bn(e._locale,e._a[We],e._meridiem),null!==(s=v(e).era)&&(e._a[He]=e._locale.erasConvertYear(s,e._a[He])),Un(e),wn(e)}else Dn(e);else Nn(e)}function Bn(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}function Hn(e){var t,n,r,i,o,a,s=!1,l=e._f.length;if(0===l)return v(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;ithis?this:e:y()}));function Kn(e,t){var n,r;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return Qn();for(n=t[0],r=1;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function _r(){if(!u(this._isDSTShifted))return this._isDSTShifted;var e,t={};return x(t,this),(t=Wn(t))._a?(e=t._isUTC?p(t._a):Qn(t._a),this._isDSTShifted=this.isValid()&&ur(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function kr(){return!!this.isValid()&&!this._isUTC}function Sr(){return!!this.isValid()&&this._isUTC}function Er(){return!!this.isValid()&&this._isUTC&&0===this._offset}r.updateOffset=function(){};var Or=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,Cr=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Tr(e,t){var n,r,i,o=e,a=null;return sr(e)?o={ms:e._milliseconds,d:e._days,M:e._months}:c(e)||!isNaN(+e)?(o={},t?o[t]=+e:o.milliseconds=+e):(a=Or.exec(e))?(n="-"===a[1]?-1:1,o={y:0,d:ce(a[Ye])*n,h:ce(a[We])*n,m:ce(a[Ge])*n,s:ce(a[$e])*n,ms:ce(lr(1e3*a[Qe]))*n}):(a=Cr.exec(e))?(n="-"===a[1]?-1:1,o={y:Nr(a[2],n),M:Nr(a[3],n),w:Nr(a[4],n),d:Nr(a[5],n),h:Nr(a[6],n),m:Nr(a[7],n),s:Nr(a[8],n)}):null==o?o={}:"object"===typeof o&&("from"in o||"to"in o)&&(i=Ar(Qn(o.from),Qn(o.to)),(o={}).ms=i.milliseconds,o.M=i.months),r=new ar(o),sr(e)&&s(e,"_locale")&&(r._locale=e._locale),sr(e)&&s(e,"_isValid")&&(r._isValid=e._isValid),r}function Nr(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Mr(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Ar(e,t){var n;return e.isValid()&&t.isValid()?(t=hr(t,e),e.isBefore(t)?n=Mr(e,t):((n=Mr(t,e)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function jr(e,t){return function(n,r){var i;return null===r||isNaN(+r)||(T(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),i=n,n=r,r=i),Pr(this,Tr(n,r),e),this}}function Pr(e,t,n,i){var o=t._milliseconds,a=lr(t._days),s=lr(t._months);e.isValid()&&(i=null==i||i,s&&ut(e,de(e,"Month")+s*n),a&&he(e,"Date",de(e,"Date")+a*n),o&&e._d.setTime(e._d.valueOf()+o*n),i&&r.updateOffset(e,a||s))}Tr.fn=ar.prototype,Tr.invalid=or;var Lr=jr(1,"add"),Dr=jr(-1,"subtract");function Rr(e){return"string"===typeof e||e instanceof String}function Ir(e){return k(e)||f(e)||Rr(e)||c(e)||Ur(e)||Fr(e)||null===e||void 0===e}function Fr(e){var t,n,r=a(e)&&!l(e),i=!1,o=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],u=o.length;for(t=0;tn.valueOf():n.valueOf()9999?H(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):N(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",H(n,"Z")):H(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function ei(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,r,i="moment",o="";return this.isLocal()||(i=0===this.utcOffset()?"moment.utc":"moment.parseZone",o="Z"),e="["+i+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",r=o+'[")]',this.format(e+t+n+r)}function ti(e){e||(e=this.isUtc()?r.defaultFormatUtc:r.defaultFormat);var t=H(this,e);return this.localeData().postformat(t)}function ni(e,t){return this.isValid()&&(k(e)&&e.isValid()||Qn(e).isValid())?Tr({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function ri(e){return this.from(Qn(),e)}function ii(e,t){return this.isValid()&&(k(e)&&e.isValid()||Qn(e).isValid())?Tr({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function oi(e){return this.to(Qn(),e)}function ai(e){var t;return void 0===e?this._locale._abbr:(null!=(t=yn(e))&&(this._locale=t),this)}r.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",r.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var si=E("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function li(){return this._locale}var ui=1e3,ci=60*ui,fi=60*ci,di=3506328*fi;function hi(e,t){return(e%t+t)%t}function pi(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-di:new Date(e,t,n).valueOf()}function mi(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-di:Date.UTC(e,t,n)}function vi(e){var t,n;if(void 0===(e=re(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?mi:pi,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=hi(t+(this._isUTC?0:this.utcOffset()*ci),fi);break;case"minute":t=this._d.valueOf(),t-=hi(t,ci);break;case"second":t=this._d.valueOf(),t-=hi(t,ui)}return this._d.setTime(t),r.updateOffset(this,!0),this}function gi(e){var t,n;if(void 0===(e=re(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?mi:pi,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=fi-hi(t+(this._isUTC?0:this.utcOffset()*ci),fi)-1;break;case"minute":t=this._d.valueOf(),t+=ci-hi(t,ci)-1;break;case"second":t=this._d.valueOf(),t+=ui-hi(t,ui)-1}return this._d.setTime(t),r.updateOffset(this,!0),this}function yi(){return this._d.valueOf()-6e4*(this._offset||0)}function bi(){return Math.floor(this.valueOf()/1e3)}function wi(){return new Date(this.valueOf())}function xi(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function _i(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function ki(){return this.isValid()?this.toISOString():null}function Si(){return g(this)}function Ei(){return h({},v(this))}function Oi(){return v(this).overflow}function Ci(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ti(e,t){var n,i,o,a=this._eras||yn("en")._eras;for(n=0,i=a.length;n=0)return l[r]}function Mi(e,t){var n=e.since<=e.until?1:-1;return void 0===t?r(e.since).year():r(e.since).year()+(t-e.offset)*n}function Ai(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;e(o=kt(e,r,i))&&(t=o),Zi.call(this,e,t,n,r,i))}function Zi(e,t,n,r,i){var o=xt(e,t,n,r,i),a=bt(o.year,0,o.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}function Ki(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}q("N",0,0,"eraAbbr"),q("NN",0,0,"eraAbbr"),q("NNN",0,0,"eraAbbr"),q("NNNN",0,0,"eraName"),q("NNNNN",0,0,"eraNarrow"),q("y",["y",1],"yo","eraYear"),q("y",["yy",2],0,"eraYear"),q("y",["yyy",3],0,"eraYear"),q("y",["yyyy",4],0,"eraYear"),Le("N",Fi),Le("NN",Fi),Le("NNN",Fi),Le("NNNN",Ui),Le("NNNNN",qi),Ue(["N","NN","NNN","NNNN","NNNNN"],(function(e,t,n,r){var i=n._locale.erasParse(e,r,n._strict);i?v(n).era=i:v(n).invalidEra=e})),Le("y",Te),Le("yy",Te),Le("yyy",Te),Le("yyyy",Te),Le("yo",zi),Ue(["y","yy","yyy","yyyy"],He),Ue(["yo"],(function(e,t,n,r){var i;n._locale._eraYearOrdinalRegex&&(i=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[He]=n._locale.eraYearOrdinalParse(e,i):t[He]=parseInt(e,10)})),q(0,["gg",2],0,(function(){return this.weekYear()%100})),q(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),Hi("gggg","weekYear"),Hi("ggggg","weekYear"),Hi("GGGG","isoWeekYear"),Hi("GGGGG","isoWeekYear"),ne("weekYear","gg"),ne("isoWeekYear","GG"),ae("weekYear",1),ae("isoWeekYear",1),Le("G",Ne),Le("g",Ne),Le("GG",_e,ye),Le("gg",_e,ye),Le("GGGG",Oe,we),Le("gggg",Oe,we),Le("GGGGG",Ce,xe),Le("ggggg",Ce,xe),qe(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=ce(e)})),qe(["gg","GG"],(function(e,t,n,i){t[i]=r.parseTwoDigitYear(e)})),q("Q",0,"Qo","quarter"),ne("quarter","Q"),ae("quarter",7),Le("Q",ge),Ue("Q",(function(e,t){t[Ve]=3*(ce(e)-1)})),q("D",["DD",2],"Do","date"),ne("date","D"),ae("date",9),Le("D",_e),Le("DD",_e,ye),Le("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),Ue(["D","DD"],Ye),Ue("Do",(function(e,t){t[Ye]=ce(e.match(_e)[0])}));var Ji=fe("Date",!0);function eo(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}q("DDD",["DDDD",3],"DDDo","dayOfYear"),ne("dayOfYear","DDD"),ae("dayOfYear",4),Le("DDD",Ee),Le("DDDD",be),Ue(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=ce(e)})),q("m",["mm",2],0,"minute"),ne("minute","m"),ae("minute",14),Le("m",_e),Le("mm",_e,ye),Ue(["m","mm"],Ge);var to=fe("Minutes",!1);q("s",["ss",2],0,"second"),ne("second","s"),ae("second",15),Le("s",_e),Le("ss",_e,ye),Ue(["s","ss"],$e);var no,ro,io=fe("Seconds",!1);for(q("S",0,0,(function(){return~~(this.millisecond()/100)})),q(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),q(0,["SSS",3],0,"millisecond"),q(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),q(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),q(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),q(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),q(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),q(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),ne("millisecond","ms"),ae("millisecond",16),Le("S",Ee,ge),Le("SS",Ee,ye),Le("SSS",Ee,be),no="SSSS";no.length<=9;no+="S")Le(no,Te);function oo(e,t){t[Qe]=ce(1e3*("0."+e))}for(no="S";no.length<=9;no+="S")Ue(no,oo);function ao(){return this._isUTC?"UTC":""}function so(){return this._isUTC?"Coordinated Universal Time":""}ro=fe("Milliseconds",!1),q("z",0,0,"zoneAbbr"),q("zz",0,0,"zoneName");var lo=_.prototype;function uo(e){return Qn(1e3*e)}function co(){return Qn.apply(null,arguments).parseZone()}function fo(e){return e}lo.add=Lr,lo.calendar=Br,lo.clone=Hr,lo.diff=Xr,lo.endOf=gi,lo.format=ti,lo.from=ni,lo.fromNow=ri,lo.to=ii,lo.toNow=oi,lo.get=pe,lo.invalidAt=Oi,lo.isAfter=Vr,lo.isBefore=Yr,lo.isBetween=Wr,lo.isSame=Gr,lo.isSameOrAfter=$r,lo.isSameOrBefore=Qr,lo.isValid=Si,lo.lang=si,lo.locale=ai,lo.localeData=li,lo.max=Zn,lo.min=Xn,lo.parsingFlags=Ei,lo.set=me,lo.startOf=vi,lo.subtract=Dr,lo.toArray=xi,lo.toObject=_i,lo.toDate=wi,lo.toISOString=Jr,lo.inspect=ei,"undefined"!==typeof Symbol&&null!=Symbol.for&&(lo[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),lo.toJSON=ki,lo.toString=Kr,lo.unix=bi,lo.valueOf=yi,lo.creationData=Ci,lo.eraName=Ai,lo.eraNarrow=ji,lo.eraAbbr=Pi,lo.eraYear=Li,lo.year=vt,lo.isLeapYear=gt,lo.weekYear=Vi,lo.isoWeekYear=Yi,lo.quarter=lo.quarters=Ki,lo.month=ct,lo.daysInMonth=ft,lo.week=lo.weeks=Tt,lo.isoWeek=lo.isoWeeks=Nt,lo.weeksInYear=$i,lo.weeksInWeekYear=Qi,lo.isoWeeksInYear=Wi,lo.isoWeeksInISOWeekYear=Gi,lo.date=Ji,lo.day=lo.days=Vt,lo.weekday=Yt,lo.isoWeekday=Wt,lo.dayOfYear=eo,lo.hour=lo.hours=rn,lo.minute=lo.minutes=to,lo.second=lo.seconds=io,lo.millisecond=lo.milliseconds=ro,lo.utcOffset=mr,lo.utc=gr,lo.local=yr,lo.parseZone=br,lo.hasAlignedHourOffset=wr,lo.isDST=xr,lo.isLocal=kr,lo.isUtcOffset=Sr,lo.isUtc=Er,lo.isUTC=Er,lo.zoneAbbr=ao,lo.zoneName=so,lo.dates=E("dates accessor is deprecated. Use date instead.",Ji),lo.months=E("months accessor is deprecated. Use month instead",ct),lo.years=E("years accessor is deprecated. Use year instead",vt),lo.zone=E("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",vr),lo.isDSTShifted=E("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",_r);var ho=j.prototype;function po(e,t,n,r){var i=yn(),o=p().set(r,t);return i[n](o,e)}function mo(e,t,n){if(c(e)&&(t=e,e=void 0),e=e||"",null!=t)return po(e,t,n,"month");var r,i=[];for(r=0;r<12;r++)i[r]=po(e,r,n,"month");return i}function vo(e,t,n,r){"boolean"===typeof e?(c(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,c(t)&&(n=t,t=void 0),t=t||"");var i,o=yn(),a=e?o._week.dow:0,s=[];if(null!=n)return po(t,(n+a)%7,r,"day");for(i=0;i<7;i++)s[i]=po(t,(i+a)%7,r,"day");return s}function go(e,t){return mo(e,t,"months")}function yo(e,t){return mo(e,t,"monthsShort")}function bo(e,t,n){return vo(e,t,n,"weekdays")}function wo(e,t,n){return vo(e,t,n,"weekdaysShort")}function xo(e,t,n){return vo(e,t,n,"weekdaysMin")}ho.calendar=L,ho.longDateFormat=W,ho.invalidDate=$,ho.ordinal=Z,ho.preparse=fo,ho.postformat=fo,ho.relativeTime=J,ho.pastFuture=ee,ho.set=M,ho.eras=Ti,ho.erasParse=Ni,ho.erasConvertYear=Mi,ho.erasAbbrRegex=Ri,ho.erasNameRegex=Di,ho.erasNarrowRegex=Ii,ho.months=ot,ho.monthsShort=at,ho.monthsParse=lt,ho.monthsRegex=ht,ho.monthsShortRegex=dt,ho.week=St,ho.firstDayOfYear=Ct,ho.firstDayOfWeek=Ot,ho.weekdays=Ut,ho.weekdaysMin=zt,ho.weekdaysShort=qt,ho.weekdaysParse=Ht,ho.weekdaysRegex=Gt,ho.weekdaysShortRegex=$t,ho.weekdaysMinRegex=Qt,ho.isPM=tn,ho.meridiem=on,mn("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===ce(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),r.lang=E("moment.lang is deprecated. Use moment.locale instead.",mn),r.langData=E("moment.langData is deprecated. Use moment.localeData instead.",yn);var _o=Math.abs;function ko(){var e=this._data;return this._milliseconds=_o(this._milliseconds),this._days=_o(this._days),this._months=_o(this._months),e.milliseconds=_o(e.milliseconds),e.seconds=_o(e.seconds),e.minutes=_o(e.minutes),e.hours=_o(e.hours),e.months=_o(e.months),e.years=_o(e.years),this}function So(e,t,n,r){var i=Tr(t,n);return e._milliseconds+=r*i._milliseconds,e._days+=r*i._days,e._months+=r*i._months,e._bubble()}function Eo(e,t){return So(this,e,t,1)}function Oo(e,t){return So(this,e,t,-1)}function Co(e){return e<0?Math.floor(e):Math.ceil(e)}function To(){var e,t,n,r,i,o=this._milliseconds,a=this._days,s=this._months,l=this._data;return o>=0&&a>=0&&s>=0||o<=0&&a<=0&&s<=0||(o+=864e5*Co(Mo(s)+a),a=0,s=0),l.milliseconds=o%1e3,e=ue(o/1e3),l.seconds=e%60,t=ue(e/60),l.minutes=t%60,n=ue(t/60),l.hours=n%24,a+=ue(n/24),s+=i=ue(No(a)),a-=Co(Mo(i)),r=ue(s/12),s%=12,l.days=a,l.months=s,l.years=r,this}function No(e){return 4800*e/146097}function Mo(e){return 146097*e/4800}function Ao(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=re(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+No(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Mo(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}}function jo(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*ce(this._months/12):NaN}function Po(e){return function(){return this.as(e)}}var Lo=Po("ms"),Do=Po("s"),Ro=Po("m"),Io=Po("h"),Fo=Po("d"),Uo=Po("w"),qo=Po("M"),zo=Po("Q"),Bo=Po("y");function Ho(){return Tr(this)}function Vo(e){return e=re(e),this.isValid()?this[e+"s"]():NaN}function Yo(e){return function(){return this.isValid()?this._data[e]:NaN}}var Wo=Yo("milliseconds"),Go=Yo("seconds"),$o=Yo("minutes"),Qo=Yo("hours"),Xo=Yo("days"),Zo=Yo("months"),Ko=Yo("years");function Jo(){return ue(this.days()/7)}var ea=Math.round,ta={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function na(e,t,n,r,i){return i.relativeTime(t||1,!!n,e,r)}function ra(e,t,n,r){var i=Tr(e).abs(),o=ea(i.as("s")),a=ea(i.as("m")),s=ea(i.as("h")),l=ea(i.as("d")),u=ea(i.as("M")),c=ea(i.as("w")),f=ea(i.as("y")),d=o<=n.ss&&["s",o]||o0,d[4]=r,na.apply(null,d)}function ia(e){return void 0===e?ea:"function"===typeof e&&(ea=e,!0)}function oa(e,t){return void 0!==ta[e]&&(void 0===t?ta[e]:(ta[e]=t,"s"===e&&(ta.ss=t-1),!0))}function aa(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,r,i=!1,o=ta;return"object"===typeof e&&(t=e,e=!1),"boolean"===typeof e&&(i=e),"object"===typeof t&&(o=Object.assign({},ta,t),null!=t.s&&null==t.ss&&(o.ss=t.s-1)),r=ra(this,!i,o,n=this.localeData()),i&&(r=n.pastFuture(+this,r)),n.postformat(r)}var sa=Math.abs;function la(e){return(e>0)-(e<0)||+e}function ua(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r,i,o,a,s,l=sa(this._milliseconds)/1e3,u=sa(this._days),c=sa(this._months),f=this.asSeconds();return f?(e=ue(l/60),t=ue(e/60),l%=60,e%=60,n=ue(c/12),c%=12,r=l?l.toFixed(3).replace(/\.?0+$/,""):"",i=f<0?"-":"",o=la(this._months)!==la(f)?"-":"",a=la(this._days)!==la(f)?"-":"",s=la(this._milliseconds)!==la(f)?"-":"",i+"P"+(n?o+n+"Y":"")+(c?o+c+"M":"")+(u?a+u+"D":"")+(t||e||l?"T":"")+(t?s+t+"H":"")+(e?s+e+"M":"")+(l?s+r+"S":"")):"P0D"}var ca=ar.prototype;return ca.isValid=ir,ca.abs=ko,ca.add=Eo,ca.subtract=Oo,ca.as=Ao,ca.asMilliseconds=Lo,ca.asSeconds=Do,ca.asMinutes=Ro,ca.asHours=Io,ca.asDays=Fo,ca.asWeeks=Uo,ca.asMonths=qo,ca.asQuarters=zo,ca.asYears=Bo,ca.valueOf=jo,ca._bubble=To,ca.clone=Ho,ca.get=Vo,ca.milliseconds=Wo,ca.seconds=Go,ca.minutes=$o,ca.hours=Qo,ca.days=Xo,ca.weeks=Jo,ca.months=Zo,ca.years=Ko,ca.humanize=aa,ca.toISOString=ua,ca.toString=ua,ca.toJSON=ua,ca.locale=ai,ca.localeData=li,ca.toIsoString=E("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ua),ca.lang=si,q("X",0,0,"unix"),q("x",0,0,"valueOf"),Le("x",Ne),Le("X",je),Ue("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e))})),Ue("x",(function(e,t,n){n._d=new Date(ce(e))})),r.version="2.29.4",i(Qn),r.fn=lo,r.min=Jn,r.max=er,r.now=tr,r.utc=p,r.unix=uo,r.months=go,r.isDate=f,r.locale=mn,r.invalid=y,r.duration=Tr,r.isMoment=k,r.weekdays=bo,r.parseZone=co,r.localeData=yn,r.isDuration=sr,r.monthsShort=yo,r.weekdaysMin=xo,r.defineLocale=vn,r.updateLocale=gn,r.locales=bn,r.weekdaysShort=wo,r.normalizeUnits=re,r.relativeTimeRounding=ia,r.relativeTimeThreshold=oa,r.calendarFormat=zr,r.prototype=lo,r.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},r}()},2267:function(e,t){var n,r,i;r=[],void 0===(i="function"===typeof(n=function(){return function(e){function t(e){return" "===e||"\t"===e||"\n"===e||"\f"===e||"\r"===e}function n(t){var n,r=t.exec(e.substring(m));if(r)return n=r[0],m+=n.length,n}for(var r,i,o,a,s,l=e.length,u=/^[ \t\n\r\u000c]+/,c=/^[, \t\n\r\u000c]+/,f=/^[^ \t\n\r\u000c]+/,d=/[,]+$/,h=/^\d+$/,p=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,m=0,v=[];;){if(n(c),m>=l)return v;r=n(f),i=[],","===r.slice(-1)?(r=r.replace(d,""),y()):g()}function g(){for(n(u),o="",a="in descriptor";;){if(s=e.charAt(m),"in descriptor"===a)if(t(s))o&&(i.push(o),o="",a="after descriptor");else{if(","===s)return m+=1,o&&i.push(o),void y();if("("===s)o+=s,a="in parens";else{if(""===s)return o&&i.push(o),void y();o+=s}}else if("in parens"===a)if(")"===s)o+=s,a="in descriptor";else{if(""===s)return i.push(o),void y();o+=s}else if("after descriptor"===a)if(t(s));else{if(""===s)return void y();a="in descriptor",m-=1}m+=1}}function y(){var t,n,o,a,s,l,u,c,f,d=!1,m={};for(a=0;a=e&&(this.indexes[n]=t-1);return this.markDirty(),this}},{key:"removeAll",value:function(){var e,t=h(this.proxyOf.nodes);try{for(t.s();!(e=t.n()).done;){e.value.parent=void 0}}catch(n){t.e(n)}finally{t.f()}return this.proxyOf.nodes=[],this.markDirty(),this}},{key:"replaceValues",value:function(e,t,n){return n||(n=t,t={}),this.walkDecls((function(r){t.props&&!t.props.includes(r.prop)||t.fast&&!r.value.includes(t.fast)||(r.value=r.value.replace(e,n))})),this.markDirty(),this}},{key:"every",value:function(e){return this.nodes.every(e)}},{key:"some",value:function(e){return this.nodes.some(e)}},{key:"index",value:function(e){return"number"===typeof e?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}},{key:"first",get:function(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}},{key:"last",get:function(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}},{key:"normalize",value:function(e,t){var a=this;if("string"===typeof e)e=b(r(e).nodes);else if(Array.isArray(e)){e=e.slice(0);var s,l=h(e);try{for(l.s();!(s=l.n()).done;){var u=s.value;u.parent&&u.parent.removeChild(u,"ignore")}}catch(x){l.e(x)}finally{l.f()}}else if("root"===e.type&&"document"!==this.type){e=e.nodes.slice(0);var c,f=h(e);try{for(f.s();!(c=f.n()).done;){var d=c.value;d.parent&&d.parent.removeChild(d,"ignore")}}catch(x){f.e(x)}finally{f.f()}}else if(e.type)e=[e];else if(e.prop){if("undefined"===typeof e.value)throw new Error("Value field is missed in node creation");"string"!==typeof e.value&&(e.value=String(e.value)),e=[new g(e)]}else if(e.selector)e=[new i(e)];else if(e.name)e=[new o(e)];else{if(!e.text)throw new Error("Unknown node type in node creation");e=[new y(e)]}var p=e.map((function(e){return e[v]||n.rebuild(e),(e=e.proxyOf).parent&&e.parent.removeChild(e),e[m]&&w(e),"undefined"===typeof e.raws.before&&t&&"undefined"!==typeof t.raws.before&&(e.raws.before=t.raws.before.replace(/\S/g,"")),e.parent=a.proxyOf,e}));return p}},{key:"getProxyProcessor",value:function(){return{set:function(e,t,n){return e[t]===n||(e[t]=n,"name"!==t&&"params"!==t&&"selector"!==t||e.markDirty()),!0},get:function(e,t){return"proxyOf"===t?e:e[t]?"each"===t||"string"===typeof t&&t.startsWith("walk")?function(){for(var n=arguments.length,r=new Array(n),i=0;i1?t-1:0),i=1;i","undefined"!==typeof this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}},{key:"showSourceCode",value:function(e){var t=this;if(!this.source)return"";var n=this.source;null==e&&(e=u.isColorSupported),c&&e&&(n=c(n));var r,i,o=n.split(/\r?\n/),a=Math.max(this.line-3,0),s=Math.min(this.line+2,o.length),l=String(s).length;if(e){var f=u.createColors(!0),d=f.bold,h=f.red,p=f.gray;r=function(e){return d(h(e))},i=function(e){return p(e)}}else r=i=function(e){return e};return o.slice(a,s).map((function(e,n){var o=a+1+n,s=" "+(" "+o).slice(-l)+" | ";if(o===t.line){var u=i(s.replace(/\d/g," "))+e.slice(0,t.column-1).replace(/[^\t]/g," ");return r(">")+i(s)+e+"\n "+u+r("^")}return" "+i(s)+e})).join("\n")}},{key:"toString",value:function(){var e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e}}]),n}(l(Error));e.exports=f,f.default=f},671:function(e,t,n){"use strict";var r=n(3137).default,i=n(3937).default,o=n(1788).default,a=n(6406).default,s=n(1001).default,l=function(e){a(n,e);var t=s(n);function n(e){var o;return i(this,n),e&&"undefined"!==typeof e.value&&"string"!==typeof e.value&&(e=r(r({},e),{},{value:String(e.value)})),(o=t.call(this,e)).type="decl",o}return o(n,[{key:"variable",get:function(){return this.prop.startsWith("--")||"$"===this.prop[0]}}]),n}(n(9735));e.exports=l,l.default=l},6675:function(e,t,n){"use strict";var r,i,o=n(3137).default,a=n(3937).default,s=n(1788).default,l=n(6406).default,u=n(1001).default,c=function(e){l(n,e);var t=u(n);function n(e){var r;return a(this,n),(r=t.call(this,o({type:"document"},e))).nodes||(r.nodes=[]),r}return s(n,[{key:"toResult",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new r(new i,this,e);return t.stringify()}}]),n}(n(8539));c.registerLazyResult=function(e){r=e},c.registerProcessor=function(e){i=e},e.exports=c,c.default=c},5385:function(e,t,n){"use strict";var r=n(3137).default,i=n(6913).default,o=n(5956).default,a=["inputs"],s=["inputId"],l=n(671),u=n(386),c=n(6811),f=n(8662),d=n(5341),h=n(1847),p=n(5605);function m(e,t){if(Array.isArray(e))return e.map((function(e){return m(e)}));var n=e.inputs,v=o(e,a);if(n){t=[];var g,y=i(n);try{for(y.s();!(g=y.n()).done;){var b=g.value,w=r(r({},b),{},{__proto__:d.prototype});w.map&&(w.map=r(r({},w.map),{},{__proto__:u.prototype})),t.push(w)}}catch(S){y.e(S)}finally{y.f()}}if(v.nodes&&(v.nodes=e.nodes.map((function(e){return m(e,t)}))),v.source){var x=v.source,_=x.inputId,k=o(x,s);v.source=k,null!=_&&(v.source.input=t[_])}if("root"===v.type)return new h(v);if("decl"===v.type)return new l(v);if("rule"===v.type)return new p(v);if("comment"===v.type)return new c(v);if("atrule"===v.type)return new f(v);throw new Error("Unknown node type: "+e.type)}e.exports=m,m.default=m},5341:function(e,t,n){"use strict";var r=n(3137).default,i=n(3937).default,o=n(1788).default,a=n(9806),s=a.SourceMapConsumer,l=a.SourceMapGenerator,u=n(9299),c=u.fileURLToPath,f=u.pathToFileURL,d=n(5728),h=d.resolve,p=d.isAbsolute,m=n(516).nanoid,v=n(2500),g=n(3291),y=n(386),b=Symbol("fromOffsetCache"),w=Boolean(s&&l),x=Boolean(h&&p),_=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(i(this,e),null===t||"undefined"===typeof t||"object"===typeof t&&!t.toString)throw new Error("PostCSS received ".concat(t," instead of CSS string"));if(this.css=t.toString(),"\ufeff"===this.css[0]||"\ufffe"===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,n.from&&(!x||/^\w+:\/\//.test(n.from)||p(n.from)?this.file=n.from:this.file=h(n.from)),x&&w){var r=new y(this.css,n);if(r.text){this.map=r;var o=r.consumer().file;!this.file&&o&&(this.file=this.mapResolve(o))}}this.file||(this.id=" "),this.map&&(this.map.file=this.from)}return o(e,[{key:"fromOffset",value:function(e){var t;if(this[b])t=this[b];else{var n=this.css.split("\n");t=new Array(n.length);for(var r=0,i=0,o=n.length;i=t[t.length-1])a=t.length-1;else for(var s,l=t.length-2;a>1)])l=s-1;else{if(!(e>=t[s+1])){a=s;break}a=s+1}return{line:a+1,col:e-t[a]+1}}},{key:"error",value:function(e,t,n){var r,i,o,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(t&&"object"===typeof t){var s=t,l=n;if("number"===typeof t.offset){var u=this.fromOffset(s.offset);t=u.line,n=u.col}else t=s.line,n=s.column;if("number"===typeof l.offset){var c=this.fromOffset(l.offset);i=c.line,o=c.col}else i=l.line,o=l.column}else if(!n){var d=this.fromOffset(t);t=d.line,n=d.col}var h=this.origin(t,n,i,o);return(r=h?new g(e,void 0===h.endLine?h.line:{line:h.line,column:h.column},void 0===h.endLine?h.column:{line:h.endLine,column:h.endColumn},h.source,h.file,a.plugin):new g(e,void 0===i?t:{line:t,column:n},void 0===i?n:{line:i,column:o},this.css,this.file,a.plugin)).input={line:t,column:n,endLine:i,endColumn:o,source:this.css},this.file&&(f&&(r.input.url=f(this.file).toString()),r.input.file=this.file),r}},{key:"origin",value:function(e,t,n,r){if(!this.map)return!1;var i,o,a=this.map.consumer(),s=a.originalPositionFor({line:e,column:t});if(!s.source)return!1;"number"===typeof n&&(i=a.originalPositionFor({line:n,column:r}));var l={url:(o=p(s.source)?f(s.source):new URL(s.source,this.map.consumer().sourceRoot||f(this.map.mapFile))).toString(),line:s.line,column:s.column,endLine:i&&i.line,endColumn:i&&i.column};if("file:"===o.protocol){if(!c)throw new Error("file: protocol is not available in this PostCSS build");l.file=c(o)}var u=a.sourceContentFor(s.source);return u&&(l.source=u),l}},{key:"mapResolve",value:function(e){return/^\w+:\/\//.test(e)?e:h(this.map.consumer().sourceRoot||this.map.root||".",e)}},{key:"from",get:function(){return this.file||this.id}},{key:"toJSON",value:function(){for(var e={},t=0,n=["hasBOM","css","file","id"];t0)){e.next=37;break}if(!k(u=this.visitTick(l))){e.next=35;break}return e.prev=26,e.next=29,u;case 29:e.next=35;break;case 31:throw e.prev=31,e.t1=e.catch(26),c=l[l.length-1].node,this.handleError(e.t1,c);case 35:e.next=23;break;case 37:e.next=20;break;case 39:if(!this.listeners.OnceExit){e.next=56;break}d=a(this.listeners.OnceExit),e.prev=41,p=r().mark((function e(){var t,n,i,a;return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=o(h.value,2),n=t[0],i=t[1],m.result.lastPlugin=n,e.prev=2,"document"!==s.type){e.next=9;break}return a=s.nodes.map((function(e){return i(e,m.helpers)})),e.next=7,Promise.all(a);case 7:e.next=11;break;case 9:return e.next=11,i(s,m.helpers);case 11:e.next=16;break;case 13:throw e.prev=13,e.t0=e.catch(2),m.handleError(e.t0);case 16:case"end":return e.stop()}}),e,null,[[2,13]])})),d.s();case 44:if((h=d.n()).done){e.next=48;break}return e.delegateYield(p(),"t2",46);case 46:e.next=44;break;case 48:e.next=53;break;case 50:e.prev=50,e.t3=e.catch(41),d.e(e.t3);case 53:return e.prev=53,d.f(),e.finish(53);case 56:return this.processed=!0,e.abrupt("return",this.stringify());case 58:case"end":return e.stop()}}),e,this,[[6,11],[26,31],[41,50,53,56]])})));return function(){return e.apply(this,arguments)}}()},{key:"prepareVisitors",value:function(){var e=this;this.listeners={};var t,n=function(t,n,r){e.listeners[n]||(e.listeners[n]=[]),e.listeners[n].push([t,r])},r=a(this.plugins);try{for(r.s();!(t=r.n()).done;){var i=t.value;if("object"===typeof i)for(var o in i){if(!x[o]&&/^[A-Z]/.test(o))throw new Error("Unknown event ".concat(o," in ").concat(i.postcssPlugin,". ")+"Try to update PostCSS (".concat(this.processor.version," now)."));if(!_[o])if("object"===typeof i[o])for(var s in i[o])n(i,"*"===s?o:o+"-"+s.toLowerCase(),i[o][s]);else"function"===typeof i[o]&&n(i,o,i[o])}}}catch(l){r.e(l)}finally{r.f()}this.hasListener=Object.keys(this.listeners).length>0}},{key:"visitTick",value:function(e){var t=e[e.length-1],n=t.node,r=t.visitors;if("root"===n.type||"document"===n.type||n.parent){if(r.length>0&&t.visitorIndex0&&(l-=1):0===l&&t.includes(d)&&(s=!0),s?(""!==a&&o.push(a.trim()),a="",s=!1):a+=d}}catch(h){f.e(h)}finally{f.f()}return(n||""!==a)&&o.push(a.trim()),o},space:function(e){return i.split(e,[" ","\n","\t"])},comma:function(e){return i.split(e,[","],!0)}};e.exports=i,i.default=i},1901:function(e,t,n){"use strict";var r=n(6913).default,i=n(3937).default,o=n(1788).default,a=n(9806),s=a.SourceMapConsumer,l=a.SourceMapGenerator,u=n(5728),c=u.dirname,f=u.resolve,d=u.relative,h=u.sep,p=n(9299).pathToFileURL,m=n(5341),v=Boolean(s&&l),g=Boolean(c&&f&&d&&h),y=function(){function e(t,n,r,o){i(this,e),this.stringify=t,this.mapOpts=r.map||{},this.root=n,this.opts=r,this.css=o}return o(e,[{key:"isMap",value:function(){return"undefined"!==typeof this.opts.map?!!this.opts.map:this.previous().length>0}},{key:"previous",value:function(){var e=this;if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk((function(t){if(t.source&&t.source.input.map){var n=t.source.input.map;e.previousMaps.includes(n)||e.previousMaps.push(n)}}));else{var t=new m(this.css,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps}},{key:"isInline",value:function(){if("undefined"!==typeof this.mapOpts.inline)return this.mapOpts.inline;var e=this.mapOpts.annotation;return("undefined"===typeof e||!0===e)&&(!this.previous().length||this.previous().some((function(e){return e.inline})))}},{key:"isSourcesContent",value:function(){return"undefined"!==typeof this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some((function(e){return e.withContent()}))}},{key:"clearAnnotation",value:function(){if(!1!==this.mapOpts.annotation)if(this.root)for(var e,t=this.root.nodes.length-1;t>=0;t--)"comment"===(e=this.root.nodes[t]).type&&0===e.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(t);else this.css&&(this.css=this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm,""))}},{key:"setSourcesContent",value:function(){var e=this,t={};if(this.root)this.root.walk((function(n){if(n.source){var r=n.source.input.from;r&&!t[r]&&(t[r]=!0,e.map.setSourceContent(e.toUrl(e.path(r)),n.source.input.css))}}));else if(this.css){var n=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(n,this.css)}}},{key:"applyPrevMaps",value:function(){var e,t=r(this.previous());try{for(t.s();!(e=t.n()).done;){var n=e.value,i=this.toUrl(this.path(n.file)),o=n.root||c(n.file),a=void 0;!1===this.mapOpts.sourcesContent?(a=new s(n.text)).sourcesContent&&(a.sourcesContent=a.sourcesContent.map((function(){return null}))):a=n.consumer(),this.map.applySourceMap(a,i,this.toUrl(this.path(o)))}}catch(l){t.e(l)}finally{t.f()}}},{key:"isAnnotation",value:function(){return!!this.isInline()||("undefined"!==typeof this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some((function(e){return e.annotation})))}},{key:"toBase64",value:function(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}},{key:"addAnnotation",value:function(){var e;e=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"===typeof this.mapOpts.annotation?this.mapOpts.annotation:"function"===typeof this.mapOpts.annotation?this.mapOpts.annotation(this.opts.to,this.root):this.outputFile()+".map";var t="\n";this.css.includes("\r\n")&&(t="\r\n"),this.css+=t+"/*# sourceMappingURL="+e+" */"}},{key:"outputFile",value:function(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}},{key:"generateMap",value:function(){if(this.root)this.generateString();else if(1===this.previous().length){var e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=l.fromSourceMap(e)}else this.map=new l({file:this.outputFile()}),this.map.addMapping({source:this.opts.from?this.toUrl(this.path(this.opts.from)):"",generated:{line:1,column:0},original:{line:1,column:0}});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}},{key:"path",value:function(e){if(0===e.indexOf("<"))return e;if(/^\w+:\/\//.test(e))return e;if(this.mapOpts.absolute)return e;var t=this.opts.to?c(this.opts.to):".";return"string"===typeof this.mapOpts.annotation&&(t=c(f(t,this.mapOpts.annotation))),e=d(t,e)}},{key:"toUrl",value:function(e){return"\\"===h&&(e=e.replace(/\\/g,"/")),encodeURI(e).replace(/[#?]/g,encodeURIComponent)}},{key:"sourcePath",value:function(e){if(this.mapOpts.from)return this.toUrl(this.mapOpts.from);if(this.mapOpts.absolute){if(p)return p(e.source.input.from).toString();throw new Error("`map.absolute` option is not available in this PostCSS build")}return this.toUrl(this.path(e.source.input.from))}},{key:"generateString",value:function(){var e=this;this.css="",this.map=new l({file:this.outputFile()});var t,n,r=1,i=1,o="",a={source:"",generated:{line:0,column:0},original:{line:0,column:0}};this.stringify(this.root,(function(s,l,u){if(e.css+=s,l&&"end"!==u&&(a.generated.line=r,a.generated.column=i-1,l.source&&l.source.start?(a.source=e.sourcePath(l),a.original.line=l.source.start.line,a.original.column=l.source.start.column-1,e.map.addMapping(a)):(a.source=o,a.original.line=1,a.original.column=0,e.map.addMapping(a))),(t=s.match(/\n/g))?(r+=t.length,n=s.lastIndexOf("\n"),i=s.length-n):i+=s.length,l&&"start"!==u){var c=l.parent||{raws:{}};("decl"!==l.type||l!==c.last||c.raws.semicolon)&&(l.source&&l.source.end?(a.source=e.sourcePath(l),a.original.line=l.source.end.line,a.original.column=l.source.end.column-1,a.generated.line=r,a.generated.column=i-2,e.map.addMapping(a)):(a.source=o,a.original.line=1,a.original.column=0,a.generated.line=r,a.generated.column=i-1,e.map.addMapping(a)))}}))}},{key:"generate",value:function(){if(this.clearAnnotation(),g&&v&&this.isMap())return this.generateMap();var e="";return this.stringify(this.root,(function(t){e+=t})),[e]}}]),e}();e.exports=y},2707:function(e,t,n){"use strict";var r=n(8120).default,i=n(3937).default,o=n(1788).default,a=n(1901),s=n(4964),l=(n(1653),n(3418)),u=n(7707),c=function(e){function t(e,n,o){var l;i(this,t),n=n.toString(),this.stringified=!1,this._processor=e,this._css=n,this._opts=o,this._map=void 0;var c=s;this.result=new u(this._processor,l,this._opts),this.result.css=n;var f=this;Object.defineProperty(this.result,"root",{get:function(){return f.root}});var d=new a(c,l,this._opts,n);if(d.isMap()){var h=d.generate(),p=r(h,2),m=p[0],v=p[1];m&&(this.result.css=m),v&&(this.result.map=v)}}return o(t,[{key:e,get:function(){return"NoWorkResult"}},{key:"processor",get:function(){return this.result.processor}},{key:"opts",get:function(){return this.result.opts}},{key:"css",get:function(){return this.result.css}},{key:"content",get:function(){return this.result.css}},{key:"map",get:function(){return this.result.map}},{key:"root",get:function(){if(this._root)return this._root;var e,t=l;try{e=t(this._css,this._opts)}catch(n){this.error=n}if(this.error)throw this.error;return this._root=e,e}},{key:"messages",get:function(){return[]}},{key:"warnings",value:function(){return[]}},{key:"toString",value:function(){return this._css}},{key:"then",value:function(e,t){return this.async().then(e,t)}},{key:"catch",value:function(e){return this.async().catch(e)}},{key:"finally",value:function(e){return this.async().then(e,e)}},{key:"async",value:function(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}},{key:"sync",value:function(){if(this.error)throw this.error;return this.result}}]),t}(Symbol.toStringTag);e.exports=c,c.default=c},9735:function(e,t,n){"use strict";var r=n(4183).default,i=n(6913).default,o=n(3937).default,a=n(1788).default,s=n(5662),l=s.isClean,u=s.my,c=n(3291),f=n(3882),d=n(4964);function h(e,t){var n=new e.constructor;for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)&&"proxyCache"!==r){var i=e[r],o=typeof i;"parent"===r&&"object"===o?t&&(n[r]=t):"source"===r?n[r]=i:Array.isArray(i)?n[r]=i.map((function(e){return h(e,n)})):("object"===o&&null!==i&&(i=h(i)),n[r]=i)}return n}var p=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var n in o(this,e),this.raws={},this[l]=!1,this[u]=!0,t)if("nodes"===n){this.nodes=[];var r,a=i(t[n]);try{for(a.s();!(r=a.n()).done;){var s=r.value;"function"===typeof s.clone?this.append(s.clone()):this.append(s)}}catch(c){a.e(c)}finally{a.f()}}else this[n]=t[n]}return a(e,[{key:"error",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.source){var n=this.rangeBy(t),r=n.start,i=n.end;return this.source.input.error(e,{line:r.line,column:r.column},{line:i.line,column:i.column},t)}return new c(e)}},{key:"warn",value:function(e,t,n){var r={node:this};for(var i in n)r[i]=n[i];return e.warn(t,r)}},{key:"remove",value:function(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}},{key:"toString",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:d;e.stringify&&(e=e.stringify);var t="";return e(this,(function(e){t+=e})),t}},{key:"assign",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t in e)this[t]=e[t];return this}},{key:"clone",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=h(this);for(var n in e)t[n]=e[n];return t}},{key:"cloneBefore",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.clone(e);return this.parent.insertBefore(this,t),t}},{key:"cloneAfter",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.clone(e);return this.parent.insertAfter(this,t),t}},{key:"replaceWith",value:function(){if(this.parent){for(var e=this,t=!1,n=arguments.length,r=new Array(n),i=0;i0&&this.unclosedBracket(i),t&&r){if(!a)for(;s.length&&("space"===(l=s[s.length-1][0])||"comment"===l);)this.tokenizer.back(s.pop());this.decl(s,a)}else this.unknownWord(s)}},{key:"rule",value:function(e){e.pop();var t=new d;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}},{key:"decl",value:function(e,t){var n=new s;this.init(n,e[0][2]);var r,i=e[e.length-1];for(";"===i[0]&&(this.semicolon=!0,e.pop()),n.source.end=this.getPosition(i[3]||i[2]||function(e){for(var t=e.length-1;t>=0;t--){var n=e[t],r=n[3]||n[2];if(r)return r}}(e));"word"!==e[0][0];)1===e.length&&this.unknownWord(e),n.raws.before+=e.shift()[1];for(n.source.start=this.getPosition(e[0][2]),n.prop="";e.length;){var o=e[0][0];if(":"===o||"space"===o||"comment"===o)break;n.prop+=e.shift()[1]}for(n.raws.between="";e.length;){if(":"===(r=e.shift())[0]){n.raws.between+=r[1];break}"word"===r[0]&&/\w/.test(r[1])&&this.unknownWord([r]),n.raws.between+=r[1]}"_"!==n.prop[0]&&"*"!==n.prop[0]||(n.raws.before+=n.prop[0],n.prop=n.prop.slice(1));for(var a,l=[];e.length&&("space"===(a=e[0][0])||"comment"===a);)l.push(e.shift());this.precheckMissedSemicolon(e);for(var u=e.length-1;u>=0;u--){if("!important"===(r=e[u])[1].toLowerCase()){n.important=!0;var c=this.stringFrom(e,u);" !important"!==(c=this.spacesFromEnd(e)+c)&&(n.raws.important=c);break}if("important"===r[1].toLowerCase()){for(var f=e.slice(0),d="",h=u;h>0;h--){var p=f[h][0];if(0===d.trim().indexOf("!")&&"space"!==p)break;d=f.pop()[1]+d}0===d.trim().indexOf("!")&&(n.important=!0,n.raws.important=d,e=f)}if("space"!==r[0]&&"comment"!==r[0])break}var m=e.some((function(e){return"space"!==e[0]&&"comment"!==e[0]}));m&&(n.raws.between+=l.map((function(e){return e[1]})).join(""),l=[]),this.raw(n,"value",l.concat(e),t),n.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}},{key:"atrule",value:function(e){var t,n,r,i=new c;i.name=e[1].slice(1),""===i.name&&this.unnamedAtrule(i,e),this.init(i,e[2]);for(var o=!1,a=!1,s=[],l=[];!this.tokenizer.endOfFile();){if("("===(t=(e=this.tokenizer.nextToken())[0])||"["===t?l.push("("===t?")":"]"):"{"===t&&l.length>0?l.push("}"):t===l[l.length-1]&&l.pop(),0===l.length){if(";"===t){i.source.end=this.getPosition(e[2]),this.semicolon=!0;break}if("{"===t){a=!0;break}if("}"===t){if(s.length>0){for(n=s[r=s.length-1];n&&"space"===n[0];)n=s[--r];n&&(i.source.end=this.getPosition(n[3]||n[2]))}this.end(e);break}s.push(e)}else s.push(e);if(this.tokenizer.endOfFile()){o=!0;break}}i.raws.between=this.spacesAndCommentsFromEnd(s),s.length?(i.raws.afterName=this.spacesAndCommentsFromStart(s),this.raw(i,"params",s),o&&(e=s[s.length-1],i.source.end=this.getPosition(e[3]||e[2]),this.spaces=i.raws.between,i.raws.between="")):(i.raws.afterName="",i.params=""),a&&(i.nodes=[],this.current=i)}},{key:"end",value:function(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current=this.current.parent):this.unexpectedClose(e)}},{key:"endFile",value:function(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces}},{key:"freeSemicolon",value:function(e){if(this.spaces+=e[1],this.current.nodes){var t=this.current.nodes[this.current.nodes.length-1];t&&"rule"===t.type&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}}},{key:"getPosition",value:function(e){var t=this.input.fromOffset(e);return{offset:e,line:t.line,column:t.col}}},{key:"init",value:function(e,t){this.current.push(e),e.source={start:this.getPosition(t),input:this.input},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)}},{key:"raw",value:function(e,t,n,r){for(var i,o,a,s,l=n.length,u="",c=!0,f=0;f=0&&("space"===(n=e[i])[0]||2!==(r+=1));i--);throw this.input.error("Missed semicolon","word"===n[0]?n[3]+1:n[2])}}}]),e}();e.exports=p},950:function(e,t,n){"use strict";var r=n(3291),i=n(671),o=n(694),a=n(8539),s=n(5444),l=n(4964),u=n(5385),c=n(6675),f=n(2176),d=n(6811),h=n(8662),p=n(7707),m=n(5341),v=n(3418),g=n(8820),y=n(5605),b=n(1847),w=n(9735);function x(){for(var e=arguments.length,t=new Array(e),n=0;n0)}},{key:"startWith",value:function(e,t){return!!e&&e.substr(0,t.length)===t}},{key:"getAnnotationURL",value:function(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}},{key:"loadAnnotation",value:function(e){var t=e.match(/\/\*\s*# sourceMappingURL=/gm);if(t){var n=e.lastIndexOf(t.pop()),r=e.indexOf("*/",n);n>-1&&r>-1&&(this.annotation=this.getAnnotationURL(e.substring(n,r)))}}},{key:"decodeInline",value:function(e){var t;if(/^data:application\/json;charset=utf-?8,/.test(e)||/^data:application\/json,/.test(e))return decodeURIComponent(e.substr(RegExp.lastMatch.length));if(/^data:application\/json;charset=utf-?8;base64,/.test(e)||/^data:application\/json;base64,/.test(e))return t=e.substr(RegExp.lastMatch.length),Buffer?Buffer.from(t,"base64").toString():window.atob(t);var n=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+n)}},{key:"loadFile",value:function(e){if(this.root=d(e),u(e))return this.mapFile=e,c(e,"utf-8").toString().trim()}},{key:"loadMap",value:function(e,t){if(!1===t)return!1;if(t){if("string"===typeof t)return t;if("function"!==typeof t){if(t instanceof a)return s.fromSourceMap(t).toString();if(t instanceof s)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}var n=t(e);if(n){var r=this.loadFile(n);if(!r)throw new Error("Unable to load previous source map: "+n.toString());return r}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){var i=this.annotation;return e&&(i=h(d(e),i)),this.loadFile(i)}}}},{key:"isMap",value:function(e){return"object"===typeof e&&("string"===typeof e.mappings||"string"===typeof e._mappings||Array.isArray(e.sections))}}]),e}();e.exports=p,p.default=p},5444:function(e,t,n){"use strict";var r=n(6913).default,i=n(3937).default,o=n(1788).default,a=n(2707),s=n(694),l=n(6675),u=n(1847),c=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];i(this,e),this.version="8.4.13",this.plugins=this.normalize(t)}return o(e,[{key:"use",value:function(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}},{key:"process",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return 0===this.plugins.length&&"undefined"===typeof t.parser&&"undefined"===typeof t.stringifier&&"undefined"===typeof t.syntax?new a(this,e,t):new s(this,e,t)}},{key:"normalize",value:function(e){var t,n=[],i=r(e);try{for(i.s();!(t=i.n()).done;){var o=t.value;if(!0===o.postcss?o=o():o.postcss&&(o=o.postcss),"object"===typeof o&&Array.isArray(o.plugins))n=n.concat(o.plugins);else if("object"===typeof o&&o.postcssPlugin)n.push(o);else if("function"===typeof o)n.push(o);else{if("object"!==typeof o||!o.parse&&!o.stringify)throw new Error(o+" is not a PostCSS plugin")}}}catch(a){i.e(a)}finally{i.f()}return n}}]),e}();e.exports=c,c.default=c,u.registerProcessor(c),l.registerProcessor(c)},7707:function(e,t,n){"use strict";var r=n(3937).default,i=n(1788).default,o=n(2176),a=function(){function e(t,n,i){r(this,e),this.processor=t,this.messages=[],this.root=n,this.opts=i,this.css=void 0,this.map=void 0}return i(e,[{key:"toString",value:function(){return this.css}},{key:"warn",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);var n=new o(e,t);return this.messages.push(n),n}},{key:"warnings",value:function(){return this.messages.filter((function(e){return"warning"===e.type}))}},{key:"content",get:function(){return this.css}}]),e}();e.exports=a,a.default=a},1847:function(e,t,n){"use strict";var r,i,o=n(6913).default,a=n(3937).default,s=n(1788).default,l=n(9282).default,u=n(3336).default,c=n(6406).default,f=n(1001).default,d=function(e){c(n,e);var t=f(n);function n(e){var r;return a(this,n),(r=t.call(this,e)).type="root",r.nodes||(r.nodes=[]),r}return s(n,[{key:"removeChild",value:function(e,t){var r=this.index(e);return!t&&0===r&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),l(u(n.prototype),"removeChild",this).call(this,e)}},{key:"normalize",value:function(e,t,r){var i=l(u(n.prototype),"normalize",this).call(this,e);if(t)if("prepend"===r)this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t){var a,s=o(i);try{for(s.s();!(a=s.n()).done;){a.value.raws.before=t.raws.before}}catch(c){s.e(c)}finally{s.f()}}return i}},{key:"toResult",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new r(new i,this,e);return t.stringify()}}]),n}(n(8539));d.registerLazyResult=function(e){r=e},d.registerProcessor=function(e){i=e},e.exports=d,d.default=d},5605:function(e,t,n){"use strict";var r=n(3937).default,i=n(1788).default,o=n(6406).default,a=n(1001).default,s=n(8539),l=n(8820),u=function(e){o(n,e);var t=a(n);function n(e){var i;return r(this,n),(i=t.call(this,e)).type="rule",i.nodes||(i.nodes=[]),i}return i(n,[{key:"selectors",get:function(){return l.comma(this.selector)},set:function(e){var t=this.selector?this.selector.match(/,\s*/):null,n=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(n)}}]),n}(s);e.exports=u,u.default=u,s.registerRule(u)},3882:function(e,t,n){"use strict";var r=n(3937).default,i=n(1788).default,o={colon:": ",indent:" ",beforeDecl:"\n",beforeRule:"\n",beforeOpen:" ",beforeClose:"\n",beforeComment:"\n",after:"\n",emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};var a=function(){function e(t){r(this,e),this.builder=t}return i(e,[{key:"stringify",value:function(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}},{key:"document",value:function(e){this.body(e)}},{key:"root",value:function(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}},{key:"comment",value:function(e){var t=this.raw(e,"left","commentLeft"),n=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+n+"*/",e)}},{key:"decl",value:function(e,t){var n=this.raw(e,"between","colon"),r=e.prop+n+this.rawValue(e,"value");e.important&&(r+=e.raws.important||" !important"),t&&(r+=";"),this.builder(r,e)}},{key:"rule",value:function(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}},{key:"atrule",value:function(e,t){var n="@"+e.name,r=e.params?this.rawValue(e,"params"):"";if("undefined"!==typeof e.raws.afterName?n+=e.raws.afterName:r&&(n+=" "),e.nodes)this.block(e,n+r);else{var i=(e.raws.between||"")+(t?";":"");this.builder(n+r+i,e)}}},{key:"body",value:function(e){for(var t=e.nodes.length-1;t>0&&"comment"===e.nodes[t].type;)t-=1;for(var n=this.raw(e,"semicolon"),r=0;r0&&"undefined"!==typeof e.raws.after)return(t=e.raws.after).includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}},{key:"rawBeforeOpen",value:function(e){var t;return e.walk((function(e){if("decl"!==e.type&&"undefined"!==typeof(t=e.raws.between))return!1})),t}},{key:"rawColon",value:function(e){var t;return e.walkDecls((function(e){if("undefined"!==typeof e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1})),t}},{key:"beforeAfter",value:function(e,t){var n;n="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");for(var r=e.parent,i=0;r&&"root"!==r.type;)i+=1,r=r.parent;if(n.includes("\n")){var o=this.raw(e,null,"indent");if(o.length)for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:{},D=e.css.valueOf(),R=L.ignoreErrors,I=D.length,F=0,U=[],q=[];function z(){return F}function B(t){throw e.error("Unclosed "+t,F)}function H(){return 0===q.length&&F>=I}function V(e){if(q.length)return q.pop();if(!(F>=I)){var L=!!e&&e.ignoreUnclosed;switch(S=D.charCodeAt(F)){case o:case a:case l:case u:case s:E=F;do{E+=1,S=D.charCodeAt(E)}while(S===a||S===o||S===l||S===u||S===s);P=["space",D.slice(F,E)],F=E-1;break;case c:case f:case p:case m:case y:case v:case h:var z=String.fromCharCode(S);P=[z,z,F];break;case d:if(A=U.length?U.pop()[1]:"",j=D.charCodeAt(F+1),"url"===A&&j!==t&&j!==n&&j!==a&&j!==o&&j!==l&&j!==s&&j!==u){E=F;do{if(N=!1,-1===(E=D.indexOf(")",E+1))){if(R||L){E=F;break}B("bracket")}for(M=E;D.charCodeAt(M-1)===r;)M-=1,N=!N}while(N);P=["brackets",D.slice(F,E+1),F,E],F=E}else E=D.indexOf(")",F+1),C=D.slice(F,E+1),-1===E||_.test(C)?P=["(","(",F]:(P=["brackets",C,F,E],F=E);break;case t:case n:O=S===t?"'":'"',E=F;do{if(N=!1,-1===(E=D.indexOf(O,E+1))){if(R||L){E=F+1;break}B("string")}for(M=E;D.charCodeAt(M-1)===r;)M-=1,N=!N}while(N);P=["string",D.slice(F,E+1),F,E],F=E;break;case b:w.lastIndex=F+1,w.test(D),E=0===w.lastIndex?D.length-1:w.lastIndex-2,P=["at-word",D.slice(F,E+1),F,E],F=E;break;case r:for(E=F,T=!0;D.charCodeAt(E+1)===r;)E+=1,T=!T;if(S=D.charCodeAt(E+1),T&&S!==i&&S!==a&&S!==o&&S!==l&&S!==u&&S!==s&&(E+=1,k.test(D.charAt(E)))){for(;k.test(D.charAt(E+1));)E+=1;D.charCodeAt(E+1)===a&&(E+=1)}P=["word",D.slice(F,E+1),F,E],F=E;break;default:S===i&&D.charCodeAt(F+1)===g?(0===(E=D.indexOf("*/",F+2)+1)&&(R||L?E=D.length:B("comment")),P=["comment",D.slice(F,E+1),F,E],F=E):(x.lastIndex=F+1,x.test(D),E=0===x.lastIndex?D.length-1:x.lastIndex-2,P=["word",D.slice(F,E+1),F,E],U.push(P),F=E)}return F++,P}}function Y(e){q.push(e)}return{back:Y,nextToken:V,endOfFile:H,position:z}}},1653:function(e){"use strict";var t={};e.exports=function(e){t[e]||(t[e]=!0,"undefined"!==typeof console&&console.warn&&console.warn(e))}},2176:function(e,t,n){"use strict";var r=n(3937).default,i=n(1788).default,o=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(r(this,e),this.type="warning",this.text=t,n.node&&n.node.source){var i=n.node.rangeBy(n);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(var o in n)this[o]=n[o]}return i(e,[{key:"toString",value:function(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}]),e}();e.exports=o,o.default=o},8453:function(e,t,n){"use strict";var r=n(7766);function i(){}function o(){}o.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,o,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:i};return n.PropTypes=n,n}},2719:function(e,t,n){e.exports=n(8453)()},7766:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},853:function(e,t,n){"use strict";var r=n(5423),i=n(9541);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;nt}return!1}(t,n,i,r)&&(n=null),r||null===i?function(e){return!!f.call(p,e)||!f.call(h,e)&&(d.test(e)?p[e]=!0:(h[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):i.mustUseProperty?e[i.propertyName]=null===n?3!==i.type&&"":n:(t=i.attributeName,r=i.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(i=i.type)||4===i&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(g,y);v[t]=new m(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(g,y);v[t]=new m(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(g,y);v[t]=new m(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){v[e]=new m(e,1,!1,e.toLowerCase(),null,!1,!1)})),v.xlinkHref=new m("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){v[e]=new m(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,x=Symbol.for("react.element"),_=Symbol.for("react.portal"),k=Symbol.for("react.fragment"),S=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),O=Symbol.for("react.provider"),C=Symbol.for("react.context"),T=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),M=Symbol.for("react.suspense_list"),A=Symbol.for("react.memo"),j=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var P=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var L=Symbol.iterator;function D(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=L&&e[L]||e["@@iterator"])?e:null}var R,I=Object.assign;function F(e){if(void 0===R)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);R=t&&t[1]||""}return"\n"+R+e}var U=!1;function q(e,t){if(!e||U)return"";U=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}catch(u){if(u&&r&&"string"===typeof u.stack){for(var i=u.stack.split("\n"),o=r.stack.split("\n"),a=i.length-1,s=o.length-1;1<=a&&0<=s&&i[a]!==o[s];)s--;for(;1<=a&&0<=s;a--,s--)if(i[a]!==o[s]){if(1!==a||1!==s)do{if(a--,0>--s||i[a]!==o[s]){var l="\n"+i[a].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}}while(1<=a&&0<=s);break}}}finally{U=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?F(e):""}function z(e){switch(e.tag){case 5:return F(e.type);case 16:return F("Lazy");case 13:return F("Suspense");case 19:return F("SuspenseList");case 0:case 2:case 15:return e=q(e.type,!1);case 11:return e=q(e.type.render,!1);case 1:return e=q(e.type,!0);default:return""}}function B(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case k:return"Fragment";case _:return"Portal";case E:return"Profiler";case S:return"StrictMode";case N:return"Suspense";case M:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case C:return(e.displayName||"Context")+".Consumer";case O:return(e._context.displayName||"Context")+".Provider";case T:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case A:return null!==(t=e.displayName||null)?t:B(e.type)||"Memo";case j:t=e._payload,e=e._init;try{return B(e(t))}catch(n){}}return null}function H(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return B(t);case 8:return t===S?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"===typeof t)return t.displayName||t.name||null;if("string"===typeof t)return t}return null}function V(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function Y(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function W(e){e._valueTracker||(e._valueTracker=function(e){var t=Y(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&"undefined"!==typeof n&&"function"===typeof n.get&&"function"===typeof n.set){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function G(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Y(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function $(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Q(e,t){var n=t.checked;return I({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function X(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=V(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Z(e,t){null!=(t=t.checked)&&b(e,"checked",t,!1)}function K(e,t){Z(e,t);var n=V(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,V(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&$(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=ue.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ce(e,t)}))}:ce);function de(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var he={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},pe=["Webkit","ms","Moz","O"];function me(e,t,n){return null==t||"boolean"===typeof t||""===t?"":n||"number"!==typeof t||0===t||he.hasOwnProperty(e)&&he[e]?(""+t).trim():t+"px"}function ve(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),i=me(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}Object.keys(he).forEach((function(e){pe.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),he[t]=he[e]}))}));var ge=I({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ye(e,t){if(t){if(ge[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!==typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!==typeof t.style)throw Error(o(62))}}function be(e,t){if(-1===e.indexOf("-"))return"string"===typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var we=null;function xe(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var _e=null,ke=null,Se=null;function Ee(e){if(e=bi(e)){if("function"!==typeof _e)throw Error(o(280));var t=e.stateNode;t&&(t=xi(t),_e(e.stateNode,e.type,t))}}function Oe(e){ke?Se?Se.push(e):Se=[e]:ke=e}function Ce(){if(ke){var e=ke,t=Se;if(Se=ke=null,Ee(e),t)for(e=0;e>>=0)?32:31-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2;var ut=64,ct=4194304;function ft(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function dt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,a=268435455&n;if(0!==a){var s=a&~i;0!==s?r=ft(s):0!==(o&=a)&&(r=ft(o))}else 0!==(a=n&~i)?r=ft(a):0!==o&&(r=ft(o));if(0===r)return 0;if(0!==t&&t!==r&&0===(t&i)&&((i=r&-r)>=(o=t&-t)||16===i&&0!==(4194240&o)))return t;if(0!==(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function gt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-at(t)]=n}function yt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-at(n),i=1<=Dn),Fn=String.fromCharCode(32),Un=!1;function qn(e,t){switch(e){case"keyup":return-1!==Pn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zn(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Bn=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Vn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Yn(e,t,n,r){Oe(r),0<(t=Wr(t,"onChange")).length&&(n=new cn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Wn=null,Gn=null;function $n(e){Fr(e,0)}function Qn(e){if(G(wi(e)))return e}function Xn(e,t){if("change"===e)return t}var Zn=!1;if(c){var Kn;if(c){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"===typeof er.oninput}Kn=Jn}else Kn=!1;Zn=Kn&&(!document.documentMode||9=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=ur(r)}}function fr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?fr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function dr(){for(var e=window,t=$();t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=$((e=t.contentWindow).document)}return t}function hr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function pr(e){var t=dr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&fr(n.ownerDocument.documentElement,n)){if(null!==r&&hr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=void 0===r.end?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=cr(n,o);var a=cr(n,r);i&&a&&(1!==e.rangeCount||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&((t=t.createRange()).setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"===typeof n.focus&&n.focus(),n=0;n=document.documentMode,vr=null,gr=null,yr=null,br=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;br||null==vr||vr!==$(r)||("selectionStart"in(r=vr)&&hr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},yr&&lr(yr,r)||(yr=r,0<(r=Wr(gr,"onSelect")).length&&(t=new cn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}function xr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var _r={animationend:xr("Animation","AnimationEnd"),animationiteration:xr("Animation","AnimationIteration"),animationstart:xr("Animation","AnimationStart"),transitionend:xr("Transition","TransitionEnd")},kr={},Sr={};function Er(e){if(kr[e])return kr[e];if(!_r[e])return e;var t,n=_r[e];for(t in n)if(n.hasOwnProperty(t)&&t in Sr)return kr[e]=n[t];return e}c&&(Sr=document.createElement("div").style,"AnimationEvent"in window||(delete _r.animationend.animation,delete _r.animationiteration.animation,delete _r.animationstart.animation),"TransitionEvent"in window||delete _r.transitionend.transition);var Or=Er("animationend"),Cr=Er("animationiteration"),Tr=Er("animationstart"),Nr=Er("transitionend"),Mr=new Map,Ar="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function jr(e,t){Mr.set(e,t),l(t,[e])}for(var Pr=0;Prki||(e.current=_i[ki],_i[ki]=null,ki--)}function Oi(e,t){ki++,_i[ki]=e.current,e.current=t}var Ci={},Ti=Si(Ci),Ni=Si(!1),Mi=Ci;function Ai(e,t){var n=e.type.contextTypes;if(!n)return Ci;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,o={};for(i in n)o[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ji(e){return null!==(e=e.childContextTypes)&&void 0!==e}function Pi(){Ei(Ni),Ei(Ti)}function Li(e,t,n){if(Ti.current!==Ci)throw Error(o(168));Oi(Ti,t),Oi(Ni,n)}function Di(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!==typeof r.getChildContext)return n;for(var i in r=r.getChildContext())if(!(i in t))throw Error(o(108,H(e)||"Unknown",i));return I({},n,r)}function Ri(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ci,Mi=Ti.current,Oi(Ti,e),Oi(Ni,Ni.current),!0}function Ii(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=Di(e,t,Mi),r.__reactInternalMemoizedMergedChildContext=e,Ei(Ni),Ei(Ti),Oi(Ti,e)):Ei(Ni),Oi(Ni,n)}var Fi=null,Ui=!1,qi=!1;function zi(e){null===Fi?Fi=[e]:Fi.push(e)}function Bi(){if(!qi&&null!==Fi){qi=!0;var e=0,t=bt;try{var n=Fi;for(bt=1;e>=a,i-=a,Xi=1<<32-at(t)+i|n<m?(v=f,f=null):v=f.sibling;var g=h(i,f,s[m],l);if(null===g){null===f&&(f=v);break}e&&f&&null===g.alternate&&t(i,f),o=a(g,o,m),null===c?u=g:c.sibling=g,c=g,f=v}if(m===s.length)return n(i,f),io&&Ki(i,m),u;if(null===f){for(;mv?(g=m,m=null):g=m.sibling;var b=h(i,m,y.value,u);if(null===b){null===m&&(m=g);break}e&&m&&null===b.alternate&&t(i,m),s=a(b,s,v),null===f?c=b:f.sibling=b,f=b,m=g}if(y.done)return n(i,m),io&&Ki(i,v),c;if(null===m){for(;!y.done;v++,y=l.next())null!==(y=d(i,y.value,u))&&(s=a(y,s,v),null===f?c=y:f.sibling=y,f=y);return io&&Ki(i,v),c}for(m=r(i,m);!y.done;v++,y=l.next())null!==(y=p(m,i,v,y.value,u))&&(e&&null!==y.alternate&&m.delete(null===y.key?v:y.key),s=a(y,s,v),null===f?c=y:f.sibling=y,f=y);return e&&m.forEach((function(e){return t(i,e)})),io&&Ki(i,v),c}return function e(r,o,a,l){if("object"===typeof a&&null!==a&&a.type===k&&null===a.key&&(a=a.props.children),"object"===typeof a&&null!==a){switch(a.$$typeof){case x:e:{for(var u=a.key,c=o;null!==c;){if(c.key===u){if((u=a.type)===k){if(7===c.tag){n(r,c.sibling),(o=i(c,a.props.children)).return=r,r=o;break e}}else if(c.elementType===u||"object"===typeof u&&null!==u&&u.$$typeof===j&&Qo(u)===c.type){n(r,c.sibling),(o=i(c,a.props)).ref=Go(r,c,a),o.return=r,r=o;break e}n(r,c);break}t(r,c),c=c.sibling}a.type===k?((o=Du(a.props.children,r.mode,l,a.key)).return=r,r=o):((l=Lu(a.type,a.key,a.props,null,r.mode,l)).ref=Go(r,o,a),l.return=r,r=l)}return s(r);case _:e:{for(c=a.key;null!==o;){if(o.key===c){if(4===o.tag&&o.stateNode.containerInfo===a.containerInfo&&o.stateNode.implementation===a.implementation){n(r,o.sibling),(o=i(o,a.children||[])).return=r,r=o;break e}n(r,o);break}t(r,o),o=o.sibling}(o=Fu(a,r.mode,l)).return=r,r=o}return s(r);case j:return e(r,o,(c=a._init)(a._payload),l)}if(te(a))return m(r,o,a,l);if(D(a))return v(r,o,a,l);$o(r,a)}return"string"===typeof a&&""!==a||"number"===typeof a?(a=""+a,null!==o&&6===o.tag?(n(r,o.sibling),(o=i(o,a)).return=r,r=o):(n(r,o),(o=Iu(a,r.mode,l)).return=r,r=o),s(r)):n(r,o)}}var Zo=Xo(!0),Ko=Xo(!1),Jo={},ea=Si(Jo),ta=Si(Jo),na=Si(Jo);function ra(e){if(e===Jo)throw Error(o(174));return e}function ia(e,t){switch(Oi(na,t),Oi(ta,e),Oi(ea,Jo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Ei(ea),Oi(ea,t)}function oa(){Ei(ea),Ei(ta),Ei(na)}function aa(e){ra(na.current);var t=ra(ea.current),n=le(t,e.type);t!==n&&(Oi(ta,e),Oi(ea,n))}function sa(e){ta.current===e&&(Ei(ea),Ei(ta))}var la=Si(0);function ua(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ca=[];function fa(){for(var e=0;en?n:4,e(!0);var r=ha.transition;ha.transition={};try{e(!1),t()}finally{bt=n,ha.transition=r}}function es(){return Ca().memoizedState}function ts(e,t,n){var r=tu(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},rs(e))is(t,n);else if(null!==(n=No(e,t,n,r))){nu(n,e,r,eu()),os(n,t,r)}}function ns(e,t,n){var r=tu(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(rs(e))is(t,i);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var a=t.lastRenderedState,s=o(a,n);if(i.hasEagerState=!0,i.eagerState=s,sr(s,a)){var l=t.interleaved;return null===l?(i.next=i,To(t)):(i.next=l.next,l.next=i),void(t.interleaved=i)}}catch(u){}null!==(n=No(e,t,i,r))&&(nu(n,e,r,i=eu()),os(n,t,r))}}function rs(e){var t=e.alternate;return e===ma||null!==t&&t===ma}function is(e,t){ba=ya=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function os(e,t,n){if(0!==(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}var as={readContext:Oo,useCallback:_a,useContext:_a,useEffect:_a,useImperativeHandle:_a,useInsertionEffect:_a,useLayoutEffect:_a,useMemo:_a,useReducer:_a,useRef:_a,useState:_a,useDebugValue:_a,useDeferredValue:_a,useTransition:_a,useMutableSource:_a,useSyncExternalStore:_a,useId:_a,unstable_isNewReconciler:!1},ss={readContext:Oo,useCallback:function(e,t){return Oa().memoizedState=[e,void 0===t?null:t],e},useContext:Oo,useEffect:Ha,useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,za(4194308,4,Ga.bind(null,t,e),n)},useLayoutEffect:function(e,t){return za(4194308,4,e,t)},useInsertionEffect:function(e,t){return za(4,2,e,t)},useMemo:function(e,t){var n=Oa();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Oa();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=ts.bind(null,ma,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Oa().memoizedState=e},useState:Fa,useDebugValue:Qa,useDeferredValue:function(e){return Oa().memoizedState=e},useTransition:function(){var e=Fa(!1),t=e[0];return e=Ja.bind(null,e[1]),Oa().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ma,i=Oa();if(io){if(void 0===n)throw Error(o(407));n=n()}else{if(n=t(),null===Nl)throw Error(o(349));0!==(30&pa)||Pa(r,t,n)}i.memoizedState=n;var a={value:n,getSnapshot:t};return i.queue=a,Ha(Da.bind(null,r,a,e),[e]),r.flags|=2048,Ua(9,La.bind(null,r,a,n,t),void 0,null),n},useId:function(){var e=Oa(),t=Nl.identifierPrefix;if(io){var n=Zi;t=":"+t+"R"+(n=(Xi&~(1<<32-at(Xi)-1)).toString(32)+n),0<(n=wa++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=xa++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},ls={readContext:Oo,useCallback:Xa,useContext:Oo,useEffect:Va,useImperativeHandle:$a,useInsertionEffect:Ya,useLayoutEffect:Wa,useMemo:Za,useReducer:Na,useRef:qa,useState:function(){return Na(Ta)},useDebugValue:Qa,useDeferredValue:function(e){return Ka(Ca(),va.memoizedState,e)},useTransition:function(){return[Na(Ta)[0],Ca().memoizedState]},useMutableSource:Aa,useSyncExternalStore:ja,useId:es,unstable_isNewReconciler:!1},us={readContext:Oo,useCallback:Xa,useContext:Oo,useEffect:Va,useImperativeHandle:$a,useInsertionEffect:Ya,useLayoutEffect:Wa,useMemo:Za,useReducer:Ma,useRef:qa,useState:function(){return Ma(Ta)},useDebugValue:Qa,useDeferredValue:function(e){var t=Ca();return null===va?t.memoizedState=e:Ka(t,va.memoizedState,e)},useTransition:function(){return[Ma(Ta)[0],Ca().memoizedState]},useMutableSource:Aa,useSyncExternalStore:ja,useId:es,unstable_isNewReconciler:!1};function cs(e,t){try{var n="",r=t;do{n+=z(r),r=r.return}while(r);var i=n}catch(o){i="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:i,digest:null}}function fs(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function ds(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var hs="function"===typeof WeakMap?WeakMap:Map;function ps(e,t,n){(n=Lo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Vl||(Vl=!0,Yl=r),ds(0,t)},n}function ms(e,t,n){(n=Lo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"===typeof r){var i=t.value;n.payload=function(){return r(i)},n.callback=function(){ds(0,t)}}var o=e.stateNode;return null!==o&&"function"===typeof o.componentDidCatch&&(n.callback=function(){ds(0,t),"function"!==typeof r&&(null===Wl?Wl=new Set([this]):Wl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function vs(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new hs;var i=new Set;r.set(t,i)}else void 0===(i=r.get(t))&&(i=new Set,r.set(t,i));i.has(n)||(i.add(n),e=Eu.bind(null,e,t,n),t.then(e,e))}function gs(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function ys(e,t,n,r,i){return 0===(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Lo(-1,1)).tag=2,Do(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=i,e)}var bs=w.ReactCurrentOwner,ws=!1;function xs(e,t,n,r){t.child=null===e?Ko(t,null,n,r):Zo(t,e.child,n,r)}function _s(e,t,n,r,i){n=n.render;var o=t.ref;return Eo(t,i),r=Sa(e,t,n,r,o,i),n=Ea(),null===e||ws?(io&&n&&eo(t),t.flags|=1,xs(e,t,r,i),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Vs(e,t,i))}function ks(e,t,n,r,i){if(null===e){var o=n.type;return"function"!==typeof o||ju(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Lu(n.type,null,r,t,t.mode,i)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Ss(e,t,o,r,i))}if(o=e.child,0===(e.lanes&i)){var a=o.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(a,r)&&e.ref===t.ref)return Vs(e,t,i)}return t.flags|=1,(e=Pu(o,r)).ref=t.ref,e.return=t,t.child=e}function Ss(e,t,n,r,i){if(null!==e){var o=e.memoizedProps;if(lr(o,r)&&e.ref===t.ref){if(ws=!1,t.pendingProps=r=o,0===(e.lanes&i))return t.lanes=e.lanes,Vs(e,t,i);0!==(131072&e.flags)&&(ws=!0)}}return Cs(e,t,n,r,i)}function Es(e,t,n){var r=t.pendingProps,i=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0===(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Oi(Pl,jl),jl|=n;else{if(0===(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Oi(Pl,jl),jl|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==o?o.baseLanes:n,Oi(Pl,jl),jl|=r}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Oi(Pl,jl),jl|=r;return xs(e,t,i,n),t.child}function Os(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Cs(e,t,n,r,i){var o=ji(n)?Mi:Ti.current;return o=Ai(t,o),Eo(t,i),n=Sa(e,t,n,r,o,i),r=Ea(),null===e||ws?(io&&r&&eo(t),t.flags|=1,xs(e,t,n,i),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Vs(e,t,i))}function Ts(e,t,n,r,i){if(ji(n)){var o=!0;Ri(t)}else o=!1;if(Eo(t,i),null===t.stateNode)Hs(e,t),Vo(t,n,r),Wo(t,n,r,i),r=!0;else if(null===e){var a=t.stateNode,s=t.memoizedProps;a.props=s;var l=a.context,u=n.contextType;"object"===typeof u&&null!==u?u=Oo(u):u=Ai(t,u=ji(n)?Mi:Ti.current);var c=n.getDerivedStateFromProps,f="function"===typeof c||"function"===typeof a.getSnapshotBeforeUpdate;f||"function"!==typeof a.UNSAFE_componentWillReceiveProps&&"function"!==typeof a.componentWillReceiveProps||(s!==r||l!==u)&&Yo(t,a,r,u),Ao=!1;var d=t.memoizedState;a.state=d,Fo(t,r,a,i),l=t.memoizedState,s!==r||d!==l||Ni.current||Ao?("function"===typeof c&&(zo(t,n,c,r),l=t.memoizedState),(s=Ao||Ho(t,n,s,r,d,l,u))?(f||"function"!==typeof a.UNSAFE_componentWillMount&&"function"!==typeof a.componentWillMount||("function"===typeof a.componentWillMount&&a.componentWillMount(),"function"===typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),"function"===typeof a.componentDidMount&&(t.flags|=4194308)):("function"===typeof a.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=u,r=s):("function"===typeof a.componentDidMount&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Po(e,t),s=t.memoizedProps,u=t.type===t.elementType?s:go(t.type,s),a.props=u,f=t.pendingProps,d=a.context,"object"===typeof(l=n.contextType)&&null!==l?l=Oo(l):l=Ai(t,l=ji(n)?Mi:Ti.current);var h=n.getDerivedStateFromProps;(c="function"===typeof h||"function"===typeof a.getSnapshotBeforeUpdate)||"function"!==typeof a.UNSAFE_componentWillReceiveProps&&"function"!==typeof a.componentWillReceiveProps||(s!==f||d!==l)&&Yo(t,a,r,l),Ao=!1,d=t.memoizedState,a.state=d,Fo(t,r,a,i);var p=t.memoizedState;s!==f||d!==p||Ni.current||Ao?("function"===typeof h&&(zo(t,n,h,r),p=t.memoizedState),(u=Ao||Ho(t,n,u,r,d,p,l)||!1)?(c||"function"!==typeof a.UNSAFE_componentWillUpdate&&"function"!==typeof a.componentWillUpdate||("function"===typeof a.componentWillUpdate&&a.componentWillUpdate(r,p,l),"function"===typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(r,p,l)),"function"===typeof a.componentDidUpdate&&(t.flags|=4),"function"===typeof a.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!==typeof a.componentDidUpdate||s===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!==typeof a.getSnapshotBeforeUpdate||s===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=l,r=u):("function"!==typeof a.componentDidUpdate||s===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!==typeof a.getSnapshotBeforeUpdate||s===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),r=!1)}return Ns(e,t,n,r,o,i)}function Ns(e,t,n,r,i,o){Os(e,t);var a=0!==(128&t.flags);if(!r&&!a)return i&&Ii(t,n,!1),Vs(e,t,o);r=t.stateNode,bs.current=t;var s=a&&"function"!==typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&a?(t.child=Zo(t,e.child,null,o),t.child=Zo(t,null,s,o)):xs(e,t,s,o),t.memoizedState=r.state,i&&Ii(t,n,!0),t.child}function Ms(e){var t=e.stateNode;t.pendingContext?Li(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Li(0,t.context,!1),ia(e,t.containerInfo)}function As(e,t,n,r,i){return po(),mo(i),t.flags|=256,xs(e,t,n,r),t.child}var js,Ps,Ls,Ds={dehydrated:null,treeContext:null,retryLane:0};function Rs(e){return{baseLanes:e,cachePool:null,transitions:null}}function Is(e,t,n){var r,i=t.pendingProps,a=la.current,s=!1,l=0!==(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&0!==(2&a)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(a|=1),Oi(la,1&a),null===e)return uo(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0===(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(l=i.children,e=i.fallback,s?(i=t.mode,s=t.child,l={mode:"hidden",children:l},0===(1&i)&&null!==s?(s.childLanes=0,s.pendingProps=l):s=Ru(l,i,0,null),e=Du(e,i,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Rs(n),t.memoizedState=Ds,e):Fs(t,l));if(null!==(a=e.memoizedState)&&null!==(r=a.dehydrated))return function(e,t,n,r,i,a,s){if(n)return 256&t.flags?(t.flags&=-257,Us(e,t,s,r=fs(Error(o(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(a=r.fallback,i=t.mode,r=Ru({mode:"visible",children:r.children},i,0,null),(a=Du(a,i,s,null)).flags|=2,r.return=t,a.return=t,r.sibling=a,t.child=r,0!==(1&t.mode)&&Zo(t,e.child,null,s),t.child.memoizedState=Rs(s),t.memoizedState=Ds,a);if(0===(1&t.mode))return Us(e,t,s,null);if("$!"===i.data){if(r=i.nextSibling&&i.nextSibling.dataset)var l=r.dgst;return r=l,Us(e,t,s,r=fs(a=Error(o(419)),r,void 0))}if(l=0!==(s&e.childLanes),ws||l){if(null!==(r=Nl)){switch(s&-s){case 4:i=2;break;case 16:i=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:i=32;break;case 536870912:i=268435456;break;default:i=0}0!==(i=0!==(i&(r.suspendedLanes|s))?0:i)&&i!==a.retryLane&&(a.retryLane=i,Mo(e,i),nu(r,e,i,-1))}return mu(),Us(e,t,s,r=fs(Error(o(421))))}return"$?"===i.data?(t.flags|=128,t.child=e.child,t=Cu.bind(null,e),i._reactRetry=t,null):(e=a.treeContext,ro=ui(i.nextSibling),no=t,io=!0,oo=null,null!==e&&(Gi[$i++]=Xi,Gi[$i++]=Zi,Gi[$i++]=Qi,Xi=e.id,Zi=e.overflow,Qi=t),(t=Fs(t,r.children)).flags|=4096,t)}(e,t,l,i,r,a,n);if(s){s=i.fallback,l=t.mode,r=(a=e.child).sibling;var u={mode:"hidden",children:i.children};return 0===(1&l)&&t.child!==a?((i=t.child).childLanes=0,i.pendingProps=u,t.deletions=null):(i=Pu(a,u)).subtreeFlags=14680064&a.subtreeFlags,null!==r?s=Pu(r,s):(s=Du(s,l,n,null)).flags|=2,s.return=t,i.return=t,i.sibling=s,t.child=i,i=s,s=t.child,l=null===(l=e.child.memoizedState)?Rs(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Ds,i}return e=(s=e.child).sibling,i=Pu(s,{mode:"visible",children:i.children}),0===(1&t.mode)&&(i.lanes=n),i.return=t,i.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=i,t.memoizedState=null,i}function Fs(e,t){return(t=Ru({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Us(e,t,n,r){return null!==r&&mo(r),Zo(t,e.child,null,n),(e=Fs(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function qs(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),So(e.return,t,n)}function zs(e,t,n,r,i){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i)}function Bs(e,t,n){var r=t.pendingProps,i=r.revealOrder,o=r.tail;if(xs(e,t,r.children,n),0!==(2&(r=la.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!==(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&qs(e,n,t);else if(19===e.tag)qs(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Oi(la,r),0===(1&t.mode))t.memoizedState=null;else switch(i){case"forwards":for(n=t.child,i=null;null!==n;)null!==(e=n.alternate)&&null===ua(e)&&(i=n),n=n.sibling;null===(n=i)?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),zs(t,!1,i,n,o);break;case"backwards":for(n=null,i=t.child,t.child=null;null!==i;){if(null!==(e=i.alternate)&&null===ua(e)){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}zs(t,!0,n,null,o);break;case"together":zs(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Hs(e,t){0===(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Vs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Rl|=t.lanes,0===(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(n=Pu(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Pu(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Ys(e,t){if(!io)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ws(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;null!==i;)n|=i.lanes|i.childLanes,r|=14680064&i.subtreeFlags,r|=14680064&i.flags,i.return=e,i=i.sibling;else for(i=e.child;null!==i;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Gs(e,t,n){var r=t.pendingProps;switch(to(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ws(t),null;case 1:case 17:return ji(t.type)&&Pi(),Ws(t),null;case 3:return r=t.stateNode,oa(),Ei(Ni),Ei(Ti),fa(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(fo(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0===(256&t.flags)||(t.flags|=1024,null!==oo&&(au(oo),oo=null))),Ws(t),null;case 5:sa(t);var i=ra(na.current);if(n=t.type,null!==e&&null!=t.stateNode)Ps(e,t,n,r),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(o(166));return Ws(t),null}if(e=ra(ea.current),fo(t)){r=t.stateNode,n=t.type;var a=t.memoizedProps;switch(r[di]=t,r[hi]=a,e=0!==(1&t.mode),n){case"dialog":Ur("cancel",r),Ur("close",r);break;case"iframe":case"object":case"embed":Ur("load",r);break;case"video":case"audio":for(i=0;i<\/script>",e=e.removeChild(e.firstChild)):"string"===typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[di]=t,e[hi]=r,js(e,t),t.stateNode=e;e:{switch(l=be(n,r),n){case"dialog":Ur("cancel",e),Ur("close",e),i=r;break;case"iframe":case"object":case"embed":Ur("load",e),i=r;break;case"video":case"audio":for(i=0;iBl&&(t.flags|=128,r=!0,Ys(a,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ua(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Ys(a,!0),null===a.tail&&"hidden"===a.tailMode&&!l.alternate&&!io)return Ws(t),null}else 2*Ze()-a.renderingStartTime>Bl&&1073741824!==n&&(t.flags|=128,r=!0,Ys(a,!1),t.lanes=4194304);a.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=a.last)?n.sibling=l:t.child=l,a.last=l)}return null!==a.tail?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=Ze(),t.sibling=null,n=la.current,Oi(la,r?1&n|2:1&n),t):(Ws(t),null);case 22:case 23:return fu(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!==(1&t.mode)?0!==(1073741824&jl)&&(Ws(t),6&t.subtreeFlags&&(t.flags|=8192)):Ws(t),null;case 24:case 25:return null}throw Error(o(156,t.tag))}function $s(e,t){switch(to(t),t.tag){case 1:return ji(t.type)&&Pi(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return oa(),Ei(Ni),Ei(Ti),fa(),0!==(65536&(e=t.flags))&&0===(128&e)?(t.flags=-65537&e|128,t):null;case 5:return sa(t),null;case 13:if(Ei(la),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));po()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Ei(la),null;case 4:return oa(),null;case 10:return ko(t.type._context),null;case 22:case 23:return fu(),null;default:return null}}js=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ps=function(e,t,n,r){var i=e.memoizedProps;if(i!==r){e=t.stateNode,ra(ea.current);var o,a=null;switch(n){case"input":i=Q(e,i),r=Q(e,r),a=[];break;case"select":i=I({},i,{value:void 0}),r=I({},r,{value:void 0}),a=[];break;case"textarea":i=re(e,i),r=re(e,r),a=[];break;default:"function"!==typeof i.onClick&&"function"===typeof r.onClick&&(e.onclick=Jr)}for(c in ye(n,r),n=null,i)if(!r.hasOwnProperty(c)&&i.hasOwnProperty(c)&&null!=i[c])if("style"===c){var l=i[c];for(o in l)l.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(s.hasOwnProperty(c)?a||(a=[]):(a=a||[]).push(c,null));for(c in r){var u=r[c];if(l=null!=i?i[c]:void 0,r.hasOwnProperty(c)&&u!==l&&(null!=u||null!=l))if("style"===c)if(l){for(o in l)!l.hasOwnProperty(o)||u&&u.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in u)u.hasOwnProperty(o)&&l[o]!==u[o]&&(n||(n={}),n[o]=u[o])}else n||(a||(a=[]),a.push(c,n)),n=u;else"dangerouslySetInnerHTML"===c?(u=u?u.__html:void 0,l=l?l.__html:void 0,null!=u&&l!==u&&(a=a||[]).push(c,u)):"children"===c?"string"!==typeof u&&"number"!==typeof u||(a=a||[]).push(c,""+u):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(s.hasOwnProperty(c)?(null!=u&&"onScroll"===c&&Ur("scroll",e),a||l===u||(a=[])):(a=a||[]).push(c,u))}n&&(a=a||[]).push("style",n);var c=a;(t.updateQueue=c)&&(t.flags|=4)}},Ls=function(e,t,n,r){n!==r&&(t.flags|=4)};var Qs=!1,Xs=!1,Zs="function"===typeof WeakSet?WeakSet:Set,Ks=null;function Js(e,t){var n=e.ref;if(null!==n)if("function"===typeof n)try{n(null)}catch(r){Su(e,t,r)}else n.current=null}function el(e,t,n){try{n()}catch(r){Su(e,t,r)}}var tl=!1;function nl(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,void 0!==o&&el(t,n,o)}i=i.next}while(i!==r)}}function rl(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function il(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"===typeof t?t(e):t.current=e}}function ol(e){var t=e.alternate;null!==t&&(e.alternate=null,ol(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[di],delete t[hi],delete t[mi],delete t[vi],delete t[gi])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function al(e){return 5===e.tag||3===e.tag||4===e.tag}function sl(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||al(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function ll(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!==(n=n._reactRootContainer)&&void 0!==n||null!==t.onclick||(t.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(ll(e,t,n),e=e.sibling;null!==e;)ll(e,t,n),e=e.sibling}function ul(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(ul(e,t,n),e=e.sibling;null!==e;)ul(e,t,n),e=e.sibling}var cl=null,fl=!1;function dl(e,t,n){for(n=n.child;null!==n;)hl(e,t,n),n=n.sibling}function hl(e,t,n){if(ot&&"function"===typeof ot.onCommitFiberUnmount)try{ot.onCommitFiberUnmount(it,n)}catch(s){}switch(n.tag){case 5:Xs||Js(n,t);case 6:var r=cl,i=fl;cl=null,dl(e,t,n),fl=i,null!==(cl=r)&&(fl?(e=cl,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):cl.removeChild(n.stateNode));break;case 18:null!==cl&&(fl?(e=cl,n=n.stateNode,8===e.nodeType?li(e.parentNode,n):1===e.nodeType&&li(e,n),Bt(e)):li(cl,n.stateNode));break;case 4:r=cl,i=fl,cl=n.stateNode.containerInfo,fl=!0,dl(e,t,n),cl=r,fl=i;break;case 0:case 11:case 14:case 15:if(!Xs&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){i=r=r.next;do{var o=i,a=o.destroy;o=o.tag,void 0!==a&&(0!==(2&o)||0!==(4&o))&&el(n,t,a),i=i.next}while(i!==r)}dl(e,t,n);break;case 1:if(!Xs&&(Js(n,t),"function"===typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){Su(n,t,s)}dl(e,t,n);break;case 21:dl(e,t,n);break;case 22:1&n.mode?(Xs=(r=Xs)||null!==n.memoizedState,dl(e,t,n),Xs=r):dl(e,t,n);break;default:dl(e,t,n)}}function pl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Zs),t.forEach((function(t){var r=Tu.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function ml(e,t){var n=t.deletions;if(null!==n)for(var r=0;ri&&(i=s),r&=~a}if(r=i,10<(r=(120>(r=Ze()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Sl(r/1960))-r)){e.timeoutHandle=ri(xu.bind(null,e,ql,Hl),r);break}xu(e,ql,Hl);break;default:throw Error(o(329))}}}return ru(e,Ze()),e.callbackNode===n?iu.bind(null,e):null}function ou(e,t){var n=Ul;return e.current.memoizedState.isDehydrated&&(du(e,t).flags|=256),2!==(e=vu(e,t))&&(t=ql,ql=n,null!==t&&au(t)),e}function au(e){null===ql?ql=e:ql.push.apply(ql,e)}function su(e,t){for(t&=~Fl,t&=~Il,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0e?16:e,null===$l)var r=!1;else{if(e=$l,$l=null,Ql=0,0!==(6&Tl))throw Error(o(331));var i=Tl;for(Tl|=4,Ks=e.current;null!==Ks;){var a=Ks,s=a.child;if(0!==(16&Ks.flags)){var l=a.deletions;if(null!==l){for(var u=0;uZe()-zl?du(e,0):Fl|=n),ru(e,t)}function Ou(e,t){0===t&&(0===(1&e.mode)?t=1:(t=ct,0===(130023424&(ct<<=1))&&(ct=4194304)));var n=eu();null!==(e=Mo(e,t))&&(gt(e,t,n),ru(e,n))}function Cu(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Ou(e,n)}function Tu(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;null!==i&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(o(314))}null!==r&&r.delete(t),Ou(e,n)}function Nu(e,t){return Ge(e,t)}function Mu(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Au(e,t,n,r){return new Mu(e,t,n,r)}function ju(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Pu(e,t){var n=e.alternate;return null===n?((n=Au(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Lu(e,t,n,r,i,a){var s=2;if(r=e,"function"===typeof e)ju(e)&&(s=1);else if("string"===typeof e)s=5;else e:switch(e){case k:return Du(n.children,i,a,t);case S:s=8,i|=8;break;case E:return(e=Au(12,n,t,2|i)).elementType=E,e.lanes=a,e;case N:return(e=Au(13,n,t,i)).elementType=N,e.lanes=a,e;case M:return(e=Au(19,n,t,i)).elementType=M,e.lanes=a,e;case P:return Ru(n,i,a,t);default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case O:s=10;break e;case C:s=9;break e;case T:s=11;break e;case A:s=14;break e;case j:s=16,r=null;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=Au(s,n,t,i)).elementType=e,t.type=r,t.lanes=a,t}function Du(e,t,n,r){return(e=Au(7,e,r,t)).lanes=n,e}function Ru(e,t,n,r){return(e=Au(22,e,r,t)).elementType=P,e.lanes=n,e.stateNode={isHidden:!1},e}function Iu(e,t,n){return(e=Au(6,e,null,t)).lanes=n,e}function Fu(e,t,n){return(t=Au(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Uu(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=vt(0),this.expirationTimes=vt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=vt(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function qu(e,t,n,r,i,o,a,s,l){return e=new Uu(e,t,n,s,l),1===t?(t=1,!0===o&&(t|=8)):t=0,o=Au(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},jo(o),e}function zu(e,t,n){var r=30&&0===(y-=1)&&c.show(t),n.props.shouldFocusAfterRender&&(n.props.shouldReturnFocusAfterClose?(l.returnFocus(n.props.preventScroll),l.teardownScopedFocus()):l.popWithoutFocus()),n.props.onAfterClose&&n.props.onAfterClose(),p.default.deregister(n)},n.open=function(){n.beforeOpen(),n.state.afterOpen&&n.state.beforeClose?(clearTimeout(n.closeTimer),n.setState({beforeClose:!1})):(n.props.shouldFocusAfterRender&&(l.setupScopedFocus(n.node),l.markForFocusLater()),n.setState({isOpen:!0},(function(){n.openAnimationFrame=requestAnimationFrame((function(){n.setState({afterOpen:!0}),n.props.isOpen&&n.props.onAfterOpen&&n.props.onAfterOpen({overlayEl:n.overlay,contentEl:n.content})}))})))},n.close=function(){n.props.closeTimeoutMS>0?n.closeWithTimeout():n.closeWithoutTimeout()},n.focusContent=function(){return n.content&&!n.contentHasFocus()&&n.content.focus({preventScroll:!0})},n.closeWithTimeout=function(){var e=Date.now()+n.props.closeTimeoutMS;n.setState({beforeClose:!0,closesAt:e},(function(){n.closeTimer=setTimeout(n.closeWithoutTimeout,n.state.closesAt-Date.now())}))},n.closeWithoutTimeout=function(){n.setState({beforeClose:!1,isOpen:!1,afterOpen:!1,closesAt:null},n.afterClose)},n.handleKeyDown=function(e){(function(e){return"Tab"===e.code||9===e.keyCode})(e)&&(0,u.default)(n.content,e),n.props.shouldCloseOnEsc&&function(e){return"Escape"===e.code||27===e.keyCode}(e)&&(e.stopPropagation(),n.requestClose(e))},n.handleOverlayOnClick=function(e){null===n.shouldClose&&(n.shouldClose=!0),n.shouldClose&&n.props.shouldCloseOnOverlayClick&&(n.ownerHandlesClose()?n.requestClose(e):n.focusContent()),n.shouldClose=null},n.handleContentOnMouseUp=function(){n.shouldClose=!1},n.handleOverlayOnMouseDown=function(e){n.props.shouldCloseOnOverlayClick||e.target!=n.overlay||e.preventDefault()},n.handleContentOnClick=function(){n.shouldClose=!1},n.handleContentOnMouseDown=function(){n.shouldClose=!1},n.requestClose=function(e){return n.ownerHandlesClose()&&n.props.onRequestClose(e)},n.ownerHandlesClose=function(){return n.props.onRequestClose},n.shouldBeClosed=function(){return!n.state.isOpen&&!n.state.beforeClose},n.contentHasFocus=function(){return document.activeElement===n.content||n.content.contains(document.activeElement)},n.buildClassName=function(e,t){var r="object"===("undefined"===typeof t?"undefined":i(t))?t:{base:g[e],afterOpen:g[e]+"--after-open",beforeClose:g[e]+"--before-close"},o=r.base;return n.state.afterOpen&&(o=o+" "+r.afterOpen),n.state.beforeClose&&(o=o+" "+r.beforeClose),"string"===typeof t&&t?o+" "+t:o},n.attributesFromObject=function(e,t){return Object.keys(t).reduce((function(n,r){return n[e+"-"+r]=t[r],n}),{})},n.state={afterOpen:!1,beforeClose:!1},n.shouldClose=null,n.moveFromContentToOverlay=null,n}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),o(t,[{key:"componentDidMount",value:function(){this.props.isOpen&&this.open()}},{key:"componentDidUpdate",value:function(e,t){this.props.isOpen&&!e.isOpen?this.open():!this.props.isOpen&&e.isOpen&&this.close(),this.props.shouldFocusAfterRender&&this.state.isOpen&&!t.isOpen&&this.focusContent()}},{key:"componentWillUnmount",value:function(){this.state.isOpen&&this.afterClose(),clearTimeout(this.closeTimer),cancelAnimationFrame(this.openAnimationFrame)}},{key:"beforeOpen",value:function(){var e=this.props,t=e.appElement,n=e.ariaHideApp,r=e.htmlOpenClassName,i=e.bodyOpenClassName,o=e.parentSelector,a=o&&o().ownerDocument||document;i&&f.add(a.body,i),r&&f.add(a.getElementsByTagName("html")[0],r),n&&(y+=1,c.hide(t)),p.default.register(this)}},{key:"render",value:function(){var e=this.props,t=e.id,n=e.className,i=e.overlayClassName,o=e.defaultStyles,a=e.children,s=n?{}:o.content,l=i?{}:o.overlay;if(this.shouldBeClosed())return null;var u={ref:this.setOverlayRef,className:this.buildClassName("overlay",i),style:r({},l,this.props.style.overlay),onClick:this.handleOverlayOnClick,onMouseDown:this.handleOverlayOnMouseDown},c=r({id:t,ref:this.setContentRef,style:r({},s,this.props.style.content),className:this.buildClassName("content",n),tabIndex:"-1",onKeyDown:this.handleKeyDown,onMouseDown:this.handleContentOnMouseDown,onMouseUp:this.handleContentOnMouseUp,onClick:this.handleContentOnClick,role:this.props.role,"aria-label":this.props.contentLabel},this.attributesFromObject("aria",r({modal:!0},this.props.aria)),this.attributesFromObject("data",this.props.data||{}),{"data-testid":this.props.testId}),f=this.props.contentElement(c,a);return this.props.overlayElement(u,f)}}]),t}(a.Component);b.defaultProps={style:{overlay:{},content:{}},defaultStyles:{}},b.propTypes={isOpen:s.default.bool.isRequired,defaultStyles:s.default.shape({content:s.default.object,overlay:s.default.object}),style:s.default.shape({content:s.default.object,overlay:s.default.object}),className:s.default.oneOfType([s.default.string,s.default.object]),overlayClassName:s.default.oneOfType([s.default.string,s.default.object]),parentSelector:s.default.func,bodyOpenClassName:s.default.string,htmlOpenClassName:s.default.string,ariaHideApp:s.default.bool,appElement:s.default.oneOfType([s.default.instanceOf(h.default),s.default.instanceOf(d.SafeHTMLCollection),s.default.instanceOf(d.SafeNodeList),s.default.arrayOf(s.default.instanceOf(h.default))]),onAfterOpen:s.default.func,onAfterClose:s.default.func,onRequestClose:s.default.func,closeTimeoutMS:s.default.number,shouldFocusAfterRender:s.default.bool,shouldCloseOnOverlayClick:s.default.bool,shouldReturnFocusAfterClose:s.default.bool,preventScroll:s.default.bool,role:s.default.string,contentLabel:s.default.string,aria:s.default.object,data:s.default.object,children:s.default.node,shouldCloseOnEsc:s.default.bool,overlayRef:s.default.func,contentRef:s.default.func,id:s.default.string,overlayElement:s.default.func,contentElement:s.default.func,testId:s.default.string},t.default=b,e.exports=t.default},2913:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.resetState=function(){s&&(s.removeAttribute?s.removeAttribute("aria-hidden"):null!=s.length?s.forEach((function(e){return e.removeAttribute("aria-hidden")})):document.querySelectorAll(s).forEach((function(e){return e.removeAttribute("aria-hidden")})));s=null},t.log=function(){0},t.assertNodeList=l,t.setElement=function(e){var t=e;if("string"===typeof t&&a.canUseDOM){var n=document.querySelectorAll(t);l(n,t),t=n}return s=t||s},t.validateElement=u,t.hide=function(e){var t=!0,n=!1,r=void 0;try{for(var i,o=u(e)[Symbol.iterator]();!(t=(i=o.next()).done);t=!0){i.value.setAttribute("aria-hidden","true")}}catch(a){n=!0,r=a}finally{try{!t&&o.return&&o.return()}finally{if(n)throw r}}},t.show=function(e){var t=!0,n=!1,r=void 0;try{for(var i,o=u(e)[Symbol.iterator]();!(t=(i=o.next()).done);t=!0){i.value.removeAttribute("aria-hidden")}}catch(a){n=!0,r=a}finally{try{!t&&o.return&&o.return()}finally{if(n)throw r}}},t.documentNotReadyOrSSRTesting=function(){s=null};var r,i=n(7849),o=(r=i)&&r.__esModule?r:{default:r},a=n(8879);var s=null;function l(e,t){if(!e||!e.length)throw new Error("react-modal: No elements were found for selector "+t+".")}function u(e){var t=e||s;return t?Array.isArray(t)||t instanceof HTMLCollection||t instanceof NodeList?t:[t]:((0,o.default)(!1,["react-modal: App element is not defined.","Please use `Modal.setAppElement(el)` or set `appElement={el}`.","This is needed so screen readers don't see main content","when modal is opened. It is not recommended, but you can opt-out","by setting `ariaHideApp={false}`."].join(" ")),[])}},8513:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.resetState=function(){for(var e=[a,s],t=0;t0?(document.body.firstChild!==a&&document.body.insertBefore(a,document.body.firstChild),document.body.lastChild!==s&&document.body.appendChild(s)):(a.parentElement&&a.parentElement.removeChild(a),s.parentElement&&s.parentElement.removeChild(s))}))},3261:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.resetState=function(){var e=document.getElementsByTagName("html")[0];for(var t in n)i(e,n[t]);var o=document.body;for(var a in r)i(o,r[a]);n={},r={}},t.log=function(){0};var n={},r={};function i(e,t){e.classList.remove(t)}t.add=function(e,t){return i=e.classList,o="html"==e.nodeName.toLowerCase()?n:r,void t.split(" ").forEach((function(e){!function(e,t){e[t]||(e[t]=0),e[t]+=1}(o,e),i.add(e)}));var i,o},t.remove=function(e,t){return i=e.classList,o="html"==e.nodeName.toLowerCase()?n:r,void t.split(" ").forEach((function(e){!function(e,t){e[t]&&(e[t]-=1)}(o,e),0===o[e]&&i.remove(e)}));var i,o}},2889:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.resetState=function(){a=[]},t.log=function(){0},t.handleBlur=u,t.handleFocus=c,t.markForFocusLater=function(){a.push(document.activeElement)},t.returnFocus=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=null;try{return void(0!==a.length&&(t=a.pop()).focus({preventScroll:e}))}catch(n){console.warn(["You tried to return focus to",t,"but it is not in the DOM anymore"].join(" "))}},t.popWithoutFocus=function(){a.length>0&&a.pop()},t.setupScopedFocus=function(e){s=e,window.addEventListener?(window.addEventListener("blur",u,!1),document.addEventListener("focus",c,!0)):(window.attachEvent("onBlur",u),document.attachEvent("onFocus",c))},t.teardownScopedFocus=function(){s=null,window.addEventListener?(window.removeEventListener("blur",u),document.removeEventListener("focus",c)):(window.detachEvent("onBlur",u),document.detachEvent("onFocus",c))};var r,i=n(4),o=(r=i)&&r.__esModule?r:{default:r};var a=[],s=null,l=!1;function u(){l=!0}function c(){if(l){if(l=!1,!s)return;setTimeout((function(){s.contains(document.activeElement)||((0,o.default)(s)[0]||s).focus()}),0)}}},4828:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.log=function(){console.log("portalOpenInstances ----------"),console.log(r.openInstances.length),r.openInstances.forEach((function(e){return console.log(e)})),console.log("end portalOpenInstances ----------")},t.resetState=function(){r=new n};var n=function e(){var t=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.register=function(e){-1===t.openInstances.indexOf(e)&&(t.openInstances.push(e),t.emit("register"))},this.deregister=function(e){var n=t.openInstances.indexOf(e);-1!==n&&(t.openInstances.splice(n,1),t.emit("deregister"))},this.subscribe=function(e){t.subscribers.push(e)},this.emit=function(e){t.subscribers.forEach((function(n){return n(e,t.openInstances.slice())}))},this.openInstances=[],this.subscribers=[]},r=new n;t.default=r},8879:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.canUseDOM=t.SafeNodeList=t.SafeHTMLCollection=void 0;var r,i=n(868);var o=((r=i)&&r.__esModule?r:{default:r}).default,a=o.canUseDOM?window.HTMLElement:{};t.SafeHTMLCollection=o.canUseDOM?window.HTMLCollection:{},t.SafeNodeList=o.canUseDOM?window.NodeList:{},t.canUseDOM=o.canUseDOM;t.default=a},870:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=(0,o.default)(e);if(!n.length)return void t.preventDefault();var r=void 0,i=t.shiftKey,s=n[0],l=n[n.length-1],u=a();if(e===u){if(!i)return;r=l}l!==u||i||(r=s);s===u&&i&&(r=l);if(r)return t.preventDefault(),void r.focus();var c=/(\bChrome\b|\bSafari\b)\//.exec(navigator.userAgent);if(null==c||"Chrome"==c[1]||null!=/\biPod\b|\biPad\b/g.exec(navigator.userAgent))return;var f=n.indexOf(u);f>-1&&(f+=i?-1:1);if("undefined"===typeof(r=n[f]))return t.preventDefault(),void(r=i?l:s).focus();t.preventDefault(),r.focus()};var r,i=n(4),o=(r=i)&&r.__esModule?r:{default:r};function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;return e.activeElement.shadowRoot?a(e.activeElement.shadowRoot):e.activeElement}e.exports=t.default},4:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var n=[].slice.call(t.querySelectorAll("*"),0).reduce((function(t,n){return t.concat(n.shadowRoot?e(n.shadowRoot):[n])}),[]);return n.filter(o)};var n=/input|select|textarea|button|object|iframe/;function r(e){var t=e.offsetWidth<=0&&e.offsetHeight<=0;if(t&&!e.innerHTML)return!0;try{var n=window.getComputedStyle(e),r=n.getPropertyValue("display");return t?"contents"!==r&&function(e,t){return"visible"!==t.getPropertyValue("overflow")||e.scrollWidth<=0&&e.scrollHeight<=0}(e,n):"none"===r}catch(i){return console.warn("Failed to inspect element style"),!1}}function i(e,t){var i=e.nodeName.toLowerCase();return(n.test(i)&&!e.disabled||"a"===i&&e.href||t)&&function(e){for(var t=e,n=e.getRootNode&&e.getRootNode();t&&t!==document.body;){if(n&&t===n&&(t=n.host.parentNode),r(t))return!1;t=t.parentNode}return!0}(e)}function o(e){var t=e.getAttribute("tabindex");null===t&&(t=void 0);var n=isNaN(t);return(n||t>=0)&&i(e,!n)}e.exports=t.default},2331:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(9428),o=(r=i)&&r.__esModule?r:{default:r};t.default=o.default,e.exports=t.default},4957:function(e,t,n){"use strict";var r=n(5423),i=Symbol.for("react.element"),o=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,o={},u=null,c=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)a.call(t,r)&&!l.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:i,type:e,key:u,ref:c,props:o,_owner:s.current}}t.Fragment=o,t.jsx=u,t.jsxs=u},2834:function(e,t){"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),h=Symbol.iterator;var p={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,v={};function g(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||p}function y(){}function b(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||p}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=g.prototype;var w=b.prototype=new y;w.constructor=b,m(w,g.prototype),w.isPureReactComponent=!0;var x=Array.isArray,_=Object.prototype.hasOwnProperty,k={current:null},S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,r){var i,o={},a=null,s=null;if(null!=t)for(i in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(a=""+t.key),t)_.call(t,i)&&!S.hasOwnProperty(i)&&(o[i]=t[i]);var l=arguments.length-2;if(1===l)o.children=r;else if(1]+$/;function v(e,t,n){if(null==e)return"";"number"===typeof e&&(e=e.toString());var y="",b="";function w(e,t){var n=this;this.tag=e,this.attribs=t||{},this.tagPosition=y.length,this.text="",this.mediaChildren=[],this.updateParentNodeText=function(){M.length&&(M[M.length-1].text+=n.text)},this.updateParentNodeMediaChildren=function(){M.length&&c.includes(this.tag)&&M[M.length-1].mediaChildren.push(this.tag)}}(t=Object.assign({},v.defaults,t)).parser=Object.assign({},g,t.parser);var x=function(e){return!1===t.allowedTags||(t.allowedTags||[]).indexOf(e)>-1};f.forEach((function(e){x(e)&&!t.allowVulnerableTags&&console.warn("\n\n\u26a0\ufe0f Your `allowedTags` option includes, `".concat(e,"`, which is inherently\nvulnerable to XSS attacks. Please remove it from `allowedTags`.\nOr, to disable this warning, add the `allowVulnerableTags` option\nand ensure you are accounting for this risk.\n\n"))}));var _,k,S=t.nonTextTags||["script","style","textarea","option"];t.allowedAttributes&&(_={},k={},d(t.allowedAttributes,(function(e,t){_[t]=[];var n=[];e.forEach((function(e){"string"===typeof e&&e.indexOf("*")>=0?n.push(o(e).replace(/\\\*/g,".*")):_[t].push(e)})),n.length&&(k[t]=new RegExp("^("+n.join("|")+")$"))})));var E={},O={},C={};d(t.allowedClasses,(function(e,t){_&&(h(_,t)||(_[t]=[]),_[t].push("class")),E[t]=[],C[t]=[];var n=[];e.forEach((function(e){"string"===typeof e&&e.indexOf("*")>=0?n.push(o(e).replace(/\\\*/g,".*")):e instanceof RegExp?C[t].push(e):E[t].push(e)})),n.length&&(O[t]=new RegExp("^("+n.join("|")+")$"))}));var T,N,M,A,j,P,L,D={};d(t.transformTags,(function(e,t){var n;"function"===typeof e?n=e:"string"===typeof e&&(n=v.simpleTransform(e)),"*"===t?T=n:D[t]=n}));var R=!1;F();var I=new i.Parser({onopentag:function(e,n){if(t.enforceHtmlBoundary&&"html"===e&&F(),P)L++;else{var i=new w(e,n);M.push(i);var o,c=!1,f=!!i.text;if(h(D,e)&&(o=D[e](e,n),i.attribs=n=o.attribs,void 0!==o.text&&(i.innerText=o.text),e!==o.tagName&&(i.name=e=o.tagName,j[N]=o.tagName)),T&&(o=T(e,n),i.attribs=n=o.attribs,e!==o.tagName&&(i.name=e=o.tagName,j[N]=o.tagName)),(!x(e)||"recursiveEscape"===t.disallowedTagsMode&&!function(e){for(var t in e)if(h(e,t))return!1;return!0}(A)||null!=t.nestingLimit&&N>=t.nestingLimit)&&(c=!0,A[N]=!0,"discard"===t.disallowedTagsMode&&-1!==S.indexOf(e)&&(P=!0,L=1),A[N]=!0),N++,c){if("discard"===t.disallowedTagsMode)return;b=y,y=""}y+="<"+e,"script"===e&&(t.allowedScriptHostnames||t.allowedScriptDomains)&&(i.innerText=""),(!_||h(_,e)||_["*"])&&d(n,(function(n,o){if(m.test(o)){var c=!1;if(!_||h(_,e)&&-1!==_[e].indexOf(o)||_["*"]&&-1!==_["*"].indexOf(o)||h(k,e)&&k[e].test(o)||k["*"]&&k["*"].test(o))c=!0;else if(_&&_[e]){var f,d=r(_[e]);try{for(d.s();!(f=d.n()).done;){var v=f.value;if(a(v)&&v.name&&v.name===o){c=!0;var g="";if(!0===v.multiple){var b,w=n.split(" "),x=r(w);try{for(x.s();!(b=x.n()).done;){var S=b.value;-1!==v.values.indexOf(S)&&(""===g?g=S:g+=" "+S)}}catch(G){x.e(G)}finally{x.f()}}else v.values.indexOf(n)>=0&&(g=n);n=g}}}catch(G){d.e(G)}finally{d.f()}}if(c){if(-1!==t.allowedSchemesAppliedToAttributes.indexOf(o)&&q(e,n))return void delete i.attribs[o];if("script"===e&&"src"===o){var T=!0;try{var N=z(n);if(t.allowedScriptHostnames||t.allowedScriptDomains){var M=(t.allowedScriptHostnames||[]).find((function(e){return e===N.url.hostname})),A=(t.allowedScriptDomains||[]).find((function(e){return N.url.hostname===e||N.url.hostname.endsWith(".".concat(e))}));T=M||A}}catch($){T=!1}if(!T)return void delete i.attribs[o]}if("iframe"===e&&"src"===o){var j=!0;try{var P=z(n);if(P.isRelativeUrl)j=h(t,"allowIframeRelativeUrls")?t.allowIframeRelativeUrls:!t.allowedIframeHostnames&&!t.allowedIframeDomains;else if(t.allowedIframeHostnames||t.allowedIframeDomains){var L=(t.allowedIframeHostnames||[]).find((function(e){return e===P.url.hostname})),D=(t.allowedIframeDomains||[]).find((function(e){return P.url.hostname===e||P.url.hostname.endsWith(".".concat(e))}));j=L||D}}catch($){j=!1}if(!j)return void delete i.attribs[o]}if("srcset"===o)try{var R=l(n);if(R.forEach((function(e){q("srcset",e.url)&&(e.evil=!0)})),!(R=p(R,(function(e){return!e.evil}))).length)return void delete i.attribs[o];n=p(R,(function(e){return!e.evil})).map((function(e){if(!e.url)throw new Error("URL missing");return e.url+(e.w?" ".concat(e.w,"w"):"")+(e.h?" ".concat(e.h,"h"):"")+(e.d?" ".concat(e.d,"x"):"")})).join(", "),i.attribs[o]=n}catch($){return void delete i.attribs[o]}if("class"===o){var I=E[e],F=E["*"],H=O[e],V=C[e],Y=[H,O["*"]].concat(V).filter((function(e){return e}));if(!(n=B(n,I&&F?s(I,F):I||F,Y)).length)return void delete i.attribs[o]}if("style"===o)if(t.parseStyleAttributes)try{var W=function(e,t){if(!t)return e;var n,r=e.nodes[0];n=t[r.selector]&&t["*"]?s(t[r.selector],t["*"]):t[r.selector]||t["*"];n&&(e.nodes[0].nodes=r.nodes.reduce(function(e){return function(t,n){h(e,n.prop)&&(e[n.prop].some((function(e){return e.test(n.value)}))&&t.push(n));return t}}(n),[]));return e}(u(e+" {"+n+"}"),t.allowedStyles);if(n=function(e){return e.nodes[0].nodes.reduce((function(e,t){return e.push("".concat(t.prop,":").concat(t.value).concat(t.important?" !important":"")),e}),[]).join(";")}(W),0===n.length)return void delete i.attribs[o]}catch($){return console.warn('Failed to parse "'+e+" {"+n+"}\", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547"),void delete i.attribs[o]}else if(t.allowedStyles)throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.");y+=" "+o,n&&n.length&&(y+='="'+U(n,!0)+'"')}else delete i.attribs[o]}else delete i.attribs[o]})),-1!==t.selfClosing.indexOf(e)?y+=" />":(y+=">",!i.innerText||f||t.textFilter||(y+=U(i.innerText),R=!0)),c&&(y=b+U(y),b="")}},ontext:function(e){if(!P){var n,r=M[M.length-1];if(r&&(n=r.tag,e=void 0!==r.innerText?r.innerText:e),"discard"!==t.disallowedTagsMode||"script"!==n&&"style"!==n){var i=U(e,!1);t.textFilter&&!R?y+=t.textFilter(i,n):R||(y+=i)}else y+=e;if(M.length)M[M.length-1].text+=e}},onclosetag:function(e,n){if(P){if(--L)return;P=!1}var r=M.pop();if(r)if(r.tag===e){P=!!t.enforceHtmlBoundary&&"html"===e,N--;var i=A[N];if(i){if(delete A[N],"discard"===t.disallowedTagsMode)return void r.updateParentNodeText();b=y,y=""}j[N]&&(e=j[N],delete j[N]),t.exclusiveFilter&&t.exclusiveFilter(r)?y=y.substr(0,r.tagPosition):(r.updateParentNodeMediaChildren(),r.updateParentNodeText(),-1!==t.selfClosing.indexOf(e)||n&&!x(e)&&["escape","recursiveEscape"].indexOf(t.disallowedTagsMode)>=0?i&&(y=b,b=""):(y+=""+e+">",i&&(y=b+U(y),b=""),R=!1))}else M.push(r)}},t.parser);return I.write(e),I.end(),y;function F(){y="",N=0,M=[],A={},j={},P=!1,L=0}function U(e,n){return"string"!==typeof e&&(e+=""),t.parser.decodeEntities&&(e=e.replace(/&/g,"&").replace(//g,">"),n&&(e=e.replace(/"/g,"""))),e=e.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),n&&(e=e.replace(/"/g,""")),e}function q(e,n){for(n=n.replace(/[\x00-\x20]+/g,"");;){var r=n.indexOf("\x3c!--");if(-1===r)break;var i=n.indexOf("--\x3e",r+4);if(-1===i)break;n=n.substring(0,r)+n.substring(i+3)}var o=n.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!o)return!!n.match(/^[/\\]{2}/)&&!t.allowProtocolRelative;var a=o[1].toLowerCase();return h(t.allowedSchemesByTag,e)?-1===t.allowedSchemesByTag[e].indexOf(a):!t.allowedSchemes||-1===t.allowedSchemes.indexOf(a)}function z(e){if((e=e.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//")).startsWith("relative:"))throw new Error("relative: exploit attempt");for(var t="relative://relative-site",n=0;n<100;n++)t+="/".concat(n);var r=new URL(e,t);return{isRelativeUrl:r&&"relative-site"===r.hostname&&"relative:"===r.protocol,url:r}}function B(e,t,n){return t?(e=e.split(/\s+/)).filter((function(e){return-1!==t.indexOf(e)||n.some((function(t){return t.test(e)}))})).join(" "):e}}var g={decodeEntities:!0};v.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1,parseStyleAttributes:!0},v.simpleTransform=function(e,t,n){return n=void 0===n||n,t=t||{},function(r,i){var o;if(n)for(o in t)i[o]=t[o];else i=t;return{tagName:e,attribs:i}}}},6283:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.attributeNames=t.elementNames=void 0,t.elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map((function(e){return[e.toLowerCase(),e]}))),t.attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map((function(e){return[e.toLowerCase(),e]})))},2606:function(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n");case s.Comment:return function(e){return"\x3c!--".concat(e.data,"--\x3e")}(e);case s.CDATA:return function(e){return"")}(e);case s.Script:case s.Style:case s.Tag:return function(e,t){var n;"foreign"===t.xmlMode&&(e.name=null!==(n=u.elementNames.get(e.name))&&void 0!==n?n:e.name,e.parent&&m.has(e.parent.name)&&(t=r(r({},t),{xmlMode:!1})));!t.xmlMode&&v.has(e.name)&&(t=r(r({},t),{xmlMode:"foreign"}));var i="<".concat(e.name),o=function(e,t){var n;if(e){var r=!1===(null!==(n=t.encodeEntities)&&void 0!==n?n:t.decodeEntities)?f:t.xmlMode||"utf8"!==t.encodeEntities?l.encodeXML:l.escapeAttribute;return Object.keys(e).map((function(n){var i,o,a=null!==(i=e[n])&&void 0!==i?i:"";return"foreign"===t.xmlMode&&(n=null!==(o=u.attributeNames.get(n))&&void 0!==o?o:n),t.emptyAttrs||t.xmlMode||""!==a?"".concat(n,'="').concat(r(a),'"'):n})).join(" ")}}(e.attribs,t);o&&(i+=" ".concat(o));0===e.children.length&&(t.xmlMode?!1!==t.selfClosingTags:t.selfClosingTags&&d.has(e.name))?(t.xmlMode||(i+=" "),i+="/>"):(i+=">",e.children.length>0&&(i+=h(e.children,t)),!t.xmlMode&&d.has(e.name)||(i+="".concat(e.name,">")));return i}(e,t);case s.Text:return function(e,t){var n,r=e.data||"";!1===(null!==(n=t.encodeEntities)&&void 0!==n?n:t.decodeEntities)||!t.xmlMode&&e.parent&&c.has(e.parent.name)||(r=t.xmlMode||"utf8"!==t.encodeEntities?(0,l.encodeXML)(r):(0,l.escapeText)(r));return r}(e,t)}}t.render=h,t.default=h;var m=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),v=new Set(["svg","math"])},9208:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.DomHandler=void 0;var o=n(763),a=n(8112);i(n(8112),t);var s={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},l=function(){function e(e,t,n){this.dom=[],this.root=new a.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"===typeof t&&(n=t,t=s),"object"===typeof e&&(t=e,e=void 0),this.callback=null!==e&&void 0!==e?e:null,this.options=null!==t&&void 0!==t?t:s,this.elementCB=null!==n&&void 0!==n?n:null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new a.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,t){var n=this.options.xmlMode?o.ElementType.Tag:void 0,r=new a.Element(e,t,void 0,n);this.addNode(r),this.tagStack.push(r)},e.prototype.ontext=function(e){var t=this.lastNode;if(t&&t.type===o.ElementType.Text)t.data+=e,this.options.withEndIndices&&(t.endIndex=this.parser.endIndex);else{var n=new a.Text(e);this.addNode(n),this.lastNode=n}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===o.ElementType.Comment)this.lastNode.data+=e;else{var t=new a.Comment(e);this.addNode(t),this.lastNode=t}},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new a.Text(""),t=new a.CDATA([e]);this.addNode(t),e.parent=t,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var n=new a.ProcessingInstruction(e,t);this.addNode(n)},e.prototype.handleCallback=function(e){if("function"===typeof this.callback)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],n=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),n&&(e.prev=n,n.next=e),e.parent=t,this.lastNode=null},e}();t.DomHandler=l,t.default=l},8112:function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(a);t.NodeWithChildren=f;var d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.CDATA,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(f);t.CDATA=d;var h=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.Root,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(f);t.Document=h;var p=function(e){function t(t,n,r,i){void 0===r&&(r=[]),void 0===i&&(i="script"===t?o.ElementType.Script:"style"===t?o.ElementType.Style:o.ElementType.Tag);var a=e.call(this,r)||this;return a.name=t,a.attribs=n,a.type=i,a}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(t){var n,r;return{name:t,value:e.attribs[t],namespace:null===(n=e["x-attribsNamespace"])||void 0===n?void 0:n[t],prefix:null===(r=e["x-attribsPrefix"])||void 0===r?void 0:r[t]}}))},enumerable:!1,configurable:!0}),t}(f);function m(e){return(0,o.isTag)(e)}function v(e){return e.type===o.ElementType.CDATA}function g(e){return e.type===o.ElementType.Text}function y(e){return e.type===o.ElementType.Comment}function b(e){return e.type===o.ElementType.Directive}function w(e){return e.type===o.ElementType.Root}function x(e,t){var n;if(void 0===t&&(t=!1),g(e))n=new l(e.data);else if(y(e))n=new u(e.data);else if(m(e)){var r=t?_(e.children):[],o=new p(e.name,i({},e.attribs),r);r.forEach((function(e){return e.parent=o})),null!=e.namespace&&(o.namespace=e.namespace),e["x-attribsNamespace"]&&(o["x-attribsNamespace"]=i({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(o["x-attribsPrefix"]=i({},e["x-attribsPrefix"])),n=o}else if(v(e)){r=t?_(e.children):[];var a=new d(r);r.forEach((function(e){return e.parent=a})),n=a}else if(w(e)){r=t?_(e.children):[];var s=new h(r);r.forEach((function(e){return e.parent=s})),e["x-mode"]&&(s["x-mode"]=e["x-mode"]),n=s}else{if(!b(e))throw new Error("Not implemented yet: ".concat(e.type));var f=new c(e.name,e.data);null!=e["x-name"]&&(f["x-name"]=e["x-name"],f["x-publicId"]=e["x-publicId"],f["x-systemId"]=e["x-systemId"]),n=f}return n.startIndex=e.startIndex,n.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(n.sourceCodeLocation=e.sourceCodeLocation),n}function _(e){for(var t=e.map((function(e){return x(e,!0)})),n=1;nc.indexOf(d)?u===t?r.FOLLOWING|r.CONTAINED_BY:r.FOLLOWING:u===e?r.PRECEDING|r.CONTAINS:r.PRECEDING}t.removeSubsets=function(e){for(var t=e.length;--t>=0;){var n=e[t];if(t>0&&e.lastIndexOf(n,t-1)>=0)e.splice(t,1);else for(var r=n.parent;r;r=r.parent)if(e.includes(r)){e.splice(t,1);break}}return e},function(e){e[e.DISCONNECTED=1]="DISCONNECTED",e[e.PRECEDING=2]="PRECEDING",e[e.FOLLOWING=4]="FOLLOWING",e[e.CONTAINS=8]="CONTAINS",e[e.CONTAINED_BY=16]="CONTAINED_BY"}(r=t.DocumentPosition||(t.DocumentPosition={})),t.compareDocumentPosition=o,t.uniqueSort=function(e){return(e=e.filter((function(e,t,n){return!n.includes(e,t+1)}))).sort((function(e,t){var n=o(e,t);return n&r.PRECEDING?-1:n&r.FOLLOWING?1:0})),e}},5037:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.hasChildren=t.isDocument=t.isComment=t.isText=t.isCDATA=t.isTag=void 0,i(n(6118),t),i(n(7668),t),i(n(9321),t),i(n(6697),t),i(n(4084),t),i(n(6685),t),i(n(8843),t);var o=n(9208);Object.defineProperty(t,"isTag",{enumerable:!0,get:function(){return o.isTag}}),Object.defineProperty(t,"isCDATA",{enumerable:!0,get:function(){return o.isCDATA}}),Object.defineProperty(t,"isText",{enumerable:!0,get:function(){return o.isText}}),Object.defineProperty(t,"isComment",{enumerable:!0,get:function(){return o.isComment}}),Object.defineProperty(t,"isDocument",{enumerable:!0,get:function(){return o.isDocument}}),Object.defineProperty(t,"hasChildren",{enumerable:!0,get:function(){return o.hasChildren}})},4084:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getElementsByTagType=t.getElementsByTagName=t.getElementById=t.getElements=t.testElement=void 0;var r=n(9208),i=n(6697),o={tag_name:function(e){return"function"===typeof e?function(t){return(0,r.isTag)(t)&&e(t.name)}:"*"===e?r.isTag:function(t){return(0,r.isTag)(t)&&t.name===e}},tag_type:function(e){return"function"===typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"===typeof e?function(t){return(0,r.isText)(t)&&e(t.data)}:function(t){return(0,r.isText)(t)&&t.data===e}}};function a(e,t){return"function"===typeof t?function(n){return(0,r.isTag)(n)&&t(n.attribs[e])}:function(n){return(0,r.isTag)(n)&&n.attribs[e]===t}}function s(e,t){return function(n){return e(n)||t(n)}}function l(e){var t=Object.keys(e).map((function(t){var n=e[t];return Object.prototype.hasOwnProperty.call(o,t)?o[t](n):a(t,n)}));return 0===t.length?null:t.reduce(s)}t.testElement=function(e,t){var n=l(e);return!n||n(t)},t.getElements=function(e,t,n,r){void 0===r&&(r=1/0);var o=l(e);return o?(0,i.filter)(o,t,n,r):[]},t.getElementById=function(e,t,n){return void 0===n&&(n=!0),Array.isArray(t)||(t=[t]),(0,i.findOne)(a("id",e),t,n)},t.getElementsByTagName=function(e,t,n,r){return void 0===n&&(n=!0),void 0===r&&(r=1/0),(0,i.filter)(o.tag_name(e),t,n,r)},t.getElementsByTagType=function(e,t,n,r){return void 0===n&&(n=!0),void 0===r&&(r=1/0),(0,i.filter)(o.tag_type(e),t,n,r)}},9321:function(e,t){"use strict";function n(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children;t.splice(t.lastIndexOf(e),1)}}Object.defineProperty(t,"__esModule",{value:!0}),t.prepend=t.prependChild=t.append=t.appendChild=t.replaceElement=t.removeElement=void 0,t.removeElement=n,t.replaceElement=function(e,t){var n=t.prev=e.prev;n&&(n.next=t);var r=t.next=e.next;r&&(r.prev=t);var i=t.parent=e.parent;if(i){var o=i.children;o[o.lastIndexOf(e)]=t,e.parent=null}},t.appendChild=function(e,t){if(n(t),t.next=null,t.parent=e,e.children.push(t)>1){var r=e.children[e.children.length-2];r.next=t,t.prev=r}else t.prev=null},t.append=function(e,t){n(t);var r=e.parent,i=e.next;if(t.next=i,t.prev=e,e.next=t,t.parent=r,i){if(i.prev=t,r){var o=r.children;o.splice(o.lastIndexOf(i),0,t)}}else r&&r.children.push(t)},t.prependChild=function(e,t){if(n(t),t.parent=e,t.prev=null,1!==e.children.unshift(t)){var r=e.children[1];r.prev=t,t.next=r}else t.next=null},t.prepend=function(e,t){n(t);var r=e.parent;if(r){var i=r.children;i.splice(i.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=r,t.prev=e.prev,t.next=e,e.prev=t}},6697:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findAll=t.existsOne=t.findOne=t.findOneChild=t.find=t.filter=void 0;var r=n(9208);function i(e,t,n,o){for(var a=[],s=0,l=t;s0){var c=i(e,u.children,n,o);if(a.push.apply(a,c),(o-=c.length)<=0)break}}return a}t.filter=function(e,t,n,r){return void 0===n&&(n=!0),void 0===r&&(r=1/0),Array.isArray(t)||(t=[t]),i(e,t,n,r)},t.find=i,t.findOneChild=function(e,t){return t.find(e)},t.findOne=function e(t,n,i){void 0===i&&(i=!0);for(var o=null,a=0;a0&&(o=e(t,s.children,!0)))}return o},t.existsOne=function e(t,n){return n.some((function(n){return(0,r.isTag)(n)&&(t(n)||n.children.length>0&&e(t,n.children))}))},t.findAll=function(e,t){for(var n,i,o=[],a=t.filter(r.isTag);i=a.shift();){var s=null===(n=i.children)||void 0===n?void 0:n.filter(r.isTag);s&&s.length>0&&a.unshift.apply(a,s),e(i)&&o.push(i)}return o}},6118:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.innerText=t.textContent=t.getText=t.getInnerHTML=t.getOuterHTML=void 0;var i=n(9208),o=r(n(2606)),a=n(763);function s(e,t){return(0,o.default)(e,t)}t.getOuterHTML=s,t.getInnerHTML=function(e,t){return(0,i.hasChildren)(e)?e.children.map((function(e){return s(e,t)})).join(""):""},t.getText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.isTag)(t)?"br"===t.name?"\n":e(t.children):(0,i.isCDATA)(t)?e(t.children):(0,i.isText)(t)?t.data:""},t.textContent=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.hasChildren)(t)&&!(0,i.isComment)(t)?e(t.children):(0,i.isText)(t)?t.data:""},t.innerText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.hasChildren)(t)&&(t.type===a.ElementType.Tag||(0,i.isCDATA)(t))?e(t.children):(0,i.isText)(t)?t.data:""}},7668:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.prevElementSibling=t.nextElementSibling=t.getName=t.hasAttrib=t.getAttributeValue=t.getSiblings=t.getParent=t.getChildren=void 0;var r=n(9208);function i(e){return(0,r.hasChildren)(e)?e.children:[]}function o(e){return e.parent||null}t.getChildren=i,t.getParent=o,t.getSiblings=function(e){var t=o(e);if(null!=t)return i(t);for(var n=[e],r=e.prev,a=e.next;null!=r;)n.unshift(r),r=r.prev;for(;null!=a;)n.push(a),a=a.next;return n},t.getAttributeValue=function(e,t){var n;return null===(n=e.attribs)||void 0===n?void 0:n[t]},t.hasAttrib=function(e,t){return null!=e.attribs&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&null!=e.attribs[t]},t.getName=function(e){return e.name},t.nextElementSibling=function(e){for(var t=e.next;null!==t&&!(0,r.isTag)(t);)t=t.next;return t},t.prevElementSibling=function(e){for(var t=e.prev;null!==t&&!(0,r.isTag)(t);)t=t.prev;return t}},236:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXML=t.decodeHTMLStrict=t.decodeHTML=t.determineBranch=t.BinTrieFlags=t.fromCodePoint=t.replaceCodePoint=t.decodeCodePoint=t.xmlDecodeTree=t.htmlDecodeTree=void 0;var i=r(n(6109));t.htmlDecodeTree=i.default;var o=r(n(4214));t.xmlDecodeTree=o.default;var a=r(n(3796));t.decodeCodePoint=a.default;var s,l,u=n(3796);function c(e){return function(t,n){for(var r="",i=0,o=0;(o=t.indexOf("&",o))>=0;)if(r+=t.slice(i,o),i=o,o+=1,t.charCodeAt(o)!==s.NUM){for(var u=0,c=1,d=0,h=e[d];o>14)-1))break;d+=m}}if(0!==u)r+=1===(m=(e[u]&l.VALUE_LENGTH)>>14)?String.fromCharCode(e[u]&~l.VALUE_LENGTH):2===m?String.fromCharCode(e[u+1]):String.fromCharCode(e[u+1],e[u+2]),i=o-c+1}else{var v=o+1,g=10,y=t.charCodeAt(v);(y|s.To_LOWER_BIT)===s.LOWER_X&&(g=16,o+=1,v+=1);do{y=t.charCodeAt(++o)}while(y>=s.ZERO&&y<=s.NINE||16===g&&(y|s.To_LOWER_BIT)>=s.LOWER_A&&(y|s.To_LOWER_BIT)<=s.LOWER_F);if(v!==o){var b=t.substring(v,o),w=parseInt(b,g);if(t.charCodeAt(o)===s.SEMI)o+=1;else if(n)continue;r+=(0,a.default)(w),i=o}}return r+t.slice(i)}}function f(e,t,n,r){var i=(t&l.BRANCH_LENGTH)>>7,o=t&l.JUMP_TABLE;if(0===i)return 0!==o&&r===o?n:-1;if(o){var a=r-o;return a<0||a>=i?-1:e[n+a]-1}for(var s=n,u=s+i-1;s<=u;){var c=s+u>>>1,f=e[c];if(fr))return e[c+i];u=c-1}}return-1}Object.defineProperty(t,"replaceCodePoint",{enumerable:!0,get:function(){return u.replaceCodePoint}}),Object.defineProperty(t,"fromCodePoint",{enumerable:!0,get:function(){return u.fromCodePoint}}),function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.To_LOWER_BIT=32]="To_LOWER_BIT"}(s||(s={})),function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"}(l=t.BinTrieFlags||(t.BinTrieFlags={})),t.determineBranch=f;var d=c(i.default),h=c(o.default);t.decodeHTML=function(e){return d(e,!1)},t.decodeHTMLStrict=function(e){return d(e,!0)},t.decodeXML=function(e){return h(e,!0)}},3796:function(e,t){"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.replaceCodePoint=t.fromCodePoint=void 0;var r=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function i(e){var t;return e>=55296&&e<=57343||e>1114111?65533:null!==(t=r.get(e))&&void 0!==t?t:e}t.fromCodePoint=null!==(n=String.fromCodePoint)&&void 0!==n?n:function(e){var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e)},t.replaceCodePoint=i,t.default=function(e){return(0,t.fromCodePoint)(i(e))}},1354:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.encodeNonAsciiHTML=t.encodeHTML=void 0;var i=r(n(3487)),o=n(674),a=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function s(e,t){for(var n,r="",a=0;null!==(n=e.exec(t));){var s=n.index;r+=t.substring(a,s);var l=t.charCodeAt(s),u=i.default.get(l);if("object"===typeof u){if(s+1$\x80-\uFFFF]/g;var n=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);function r(e){for(var r,i="",o=0;null!==(r=t.xmlReplacer.exec(e));){var a=r.index,s=e.charCodeAt(a),l=n.get(s);void 0!==l?(i+=e.substring(o,a)+l,o=a+1):(i+="".concat(e.substring(o,a),"").concat((0,t.getCodePoint)(e,a).toString(16),";"),o=t.xmlReplacer.lastIndex+=Number(55296===(64512&s)))}return i+e.substr(o)}function i(e,t){return function(n){for(var r,i=0,o="";r=e.exec(n);)i!==r.index&&(o+=n.substring(i,r.index)),o+=t.get(r[0].charCodeAt(0)),i=r.index+1;return o+n.substring(i)}}t.getCodePoint=null!=String.prototype.codePointAt?function(e,t){return e.codePointAt(t)}:function(e,t){return 55296===(64512&e.charCodeAt(t))?1024*(e.charCodeAt(t)-55296)+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t)},t.encodeXML=r,t.escape=r,t.escapeUTF8=i(/[&<>'"]/g,n),t.escapeAttribute=i(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),t.escapeText=i(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))},6109:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array('\u1d41<\xd5\u0131\u028a\u049d\u057b\u05d0\u0675\u06de\u07a2\u07d6\u080f\u0a4a\u0a91\u0da1\u0e6d\u0f09\u0f26\u10ca\u1228\u12e1\u1415\u149d\u14c3\u14df\u1525\0\0\0\0\0\0\u156b\u16cd\u198d\u1c12\u1ddd\u1f7e\u2060\u21b0\u228d\u23c0\u23fb\u2442\u2824\u2912\u2d08\u2e48\u2fce\u3016\u32ba\u3639\u37ac\u38fe\u3a28\u3a71\u3ae0\u3b2e\u0800EMabcfglmnoprstu\\bfms\x7f\x84\x8b\x90\x95\x98\xa6\xb3\xb9\xc8\xcflig\u803b\xc6\u40c6P\u803b&\u4026cute\u803b\xc1\u40c1reve;\u4102\u0100iyx}rc\u803b\xc2\u40c2;\u4410r;\uc000\ud835\udd04rave\u803b\xc0\u40c0pha;\u4391acr;\u4100d;\u6a53\u0100gp\x9d\xa1on;\u4104f;\uc000\ud835\udd38plyFunction;\u6061ing\u803b\xc5\u40c5\u0100cs\xbe\xc3r;\uc000\ud835\udc9cign;\u6254ilde\u803b\xc3\u40c3ml\u803b\xc4\u40c4\u0400aceforsu\xe5\xfb\xfe\u0117\u011c\u0122\u0127\u012a\u0100cr\xea\xf2kslash;\u6216\u0176\xf6\xf8;\u6ae7ed;\u6306y;\u4411\u0180crt\u0105\u010b\u0114ause;\u6235noullis;\u612ca;\u4392r;\uc000\ud835\udd05pf;\uc000\ud835\udd39eve;\u42d8c\xf2\u0113mpeq;\u624e\u0700HOacdefhilorsu\u014d\u0151\u0156\u0180\u019e\u01a2\u01b5\u01b7\u01ba\u01dc\u0215\u0273\u0278\u027ecy;\u4427PY\u803b\xa9\u40a9\u0180cpy\u015d\u0162\u017aute;\u4106\u0100;i\u0167\u0168\u62d2talDifferentialD;\u6145leys;\u612d\u0200aeio\u0189\u018e\u0194\u0198ron;\u410cdil\u803b\xc7\u40c7rc;\u4108nint;\u6230ot;\u410a\u0100dn\u01a7\u01adilla;\u40b8terDot;\u40b7\xf2\u017fi;\u43a7rcle\u0200DMPT\u01c7\u01cb\u01d1\u01d6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01e2\u01f8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020foubleQuote;\u601duote;\u6019\u0200lnpu\u021e\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6a74\u0180git\u022f\u0236\u023aruent;\u6261nt;\u622fourIntegral;\u622e\u0100fr\u024c\u024e;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6a2fcr;\uc000\ud835\udc9ep\u0100;C\u0284\u0285\u62d3ap;\u624d\u0580DJSZacefios\u02a0\u02ac\u02b0\u02b4\u02b8\u02cb\u02d7\u02e1\u02e6\u0333\u048d\u0100;o\u0179\u02a5trahd;\u6911cy;\u4402cy;\u4405cy;\u440f\u0180grs\u02bf\u02c4\u02c7ger;\u6021r;\u61a1hv;\u6ae4\u0100ay\u02d0\u02d5ron;\u410e;\u4414l\u0100;t\u02dd\u02de\u6207a;\u4394r;\uc000\ud835\udd07\u0100af\u02eb\u0327\u0100cm\u02f0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031ccute;\u40b4o\u0174\u030b\u030d;\u42d9bleAcute;\u42ddrave;\u4060ilde;\u42dcond;\u62c4ferentialD;\u6146\u0470\u033d\0\0\0\u0342\u0354\0\u0405f;\uc000\ud835\udd3b\u0180;DE\u0348\u0349\u034d\u40a8ot;\u60dcqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03cf\u03e2\u03f8ontourIntegra\xec\u0239o\u0274\u0379\0\0\u037b\xbb\u0349nArrow;\u61d3\u0100eo\u0387\u03a4ft\u0180ART\u0390\u0396\u03a1rrow;\u61d0ightArrow;\u61d4e\xe5\u02cang\u0100LR\u03ab\u03c4eft\u0100AR\u03b3\u03b9rrow;\u67f8ightArrow;\u67faightArrow;\u67f9ight\u0100AT\u03d8\u03derrow;\u61d2ee;\u62a8p\u0241\u03e9\0\0\u03efrrow;\u61d1ownArrow;\u61d5erticalBar;\u6225n\u0300ABLRTa\u0412\u042a\u0430\u045e\u047f\u037crrow\u0180;BU\u041d\u041e\u0422\u6193ar;\u6913pArrow;\u61f5reve;\u4311eft\u02d2\u043a\0\u0446\0\u0450ightVector;\u6950eeVector;\u695eector\u0100;B\u0459\u045a\u61bdar;\u6956ight\u01d4\u0467\0\u0471eeVector;\u695fector\u0100;B\u047a\u047b\u61c1ar;\u6957ee\u0100;A\u0486\u0487\u62a4rrow;\u61a7\u0100ct\u0492\u0497r;\uc000\ud835\udc9frok;\u4110\u0800NTacdfglmopqstux\u04bd\u04c0\u04c4\u04cb\u04de\u04e2\u04e7\u04ee\u04f5\u0521\u052f\u0536\u0552\u055d\u0560\u0565G;\u414aH\u803b\xd0\u40d0cute\u803b\xc9\u40c9\u0180aiy\u04d2\u04d7\u04dcron;\u411arc\u803b\xca\u40ca;\u442dot;\u4116r;\uc000\ud835\udd08rave\u803b\xc8\u40c8ement;\u6208\u0100ap\u04fa\u04fecr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65fberySmallSquare;\u65ab\u0100gp\u0526\u052aon;\u4118f;\uc000\ud835\udd3csilon;\u4395u\u0100ai\u053c\u0549l\u0100;T\u0542\u0543\u6a75ilde;\u6242librium;\u61cc\u0100ci\u0557\u055ar;\u6130m;\u6a73a;\u4397ml\u803b\xcb\u40cb\u0100ip\u056a\u056fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058d\u05b2\u05ccy;\u4424r;\uc000\ud835\udd09lled\u0253\u0597\0\0\u05a3mallSquare;\u65fcerySmallSquare;\u65aa\u0370\u05ba\0\u05bf\0\0\u05c4f;\uc000\ud835\udd3dAll;\u6200riertrf;\u6131c\xf2\u05cb\u0600JTabcdfgorst\u05e8\u05ec\u05ef\u05fa\u0600\u0612\u0616\u061b\u061d\u0623\u066c\u0672cy;\u4403\u803b>\u403emma\u0100;d\u05f7\u05f8\u4393;\u43dcreve;\u411e\u0180eiy\u0607\u060c\u0610dil;\u4122rc;\u411c;\u4413ot;\u4120r;\uc000\ud835\udd0a;\u62d9pf;\uc000\ud835\udd3eeater\u0300EFGLST\u0635\u0644\u064e\u0656\u065b\u0666qual\u0100;L\u063e\u063f\u6265ess;\u62dbullEqual;\u6267reater;\u6aa2ess;\u6277lantEqual;\u6a7eilde;\u6273cr;\uc000\ud835\udca2;\u626b\u0400Aacfiosu\u0685\u068b\u0696\u069b\u069e\u06aa\u06be\u06caRDcy;\u442a\u0100ct\u0690\u0694ek;\u42c7;\u405eirc;\u4124r;\u610clbertSpace;\u610b\u01f0\u06af\0\u06b2f;\u610dizontalLine;\u6500\u0100ct\u06c3\u06c5\xf2\u06a9rok;\u4126mp\u0144\u06d0\u06d8ownHum\xf0\u012fqual;\u624f\u0700EJOacdfgmnostu\u06fa\u06fe\u0703\u0707\u070e\u071a\u071e\u0721\u0728\u0744\u0778\u078b\u078f\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803b\xcd\u40cd\u0100iy\u0713\u0718rc\u803b\xce\u40ce;\u4418ot;\u4130r;\u6111rave\u803b\xcc\u40cc\u0180;ap\u0720\u072f\u073f\u0100cg\u0734\u0737r;\u412ainaryI;\u6148lie\xf3\u03dd\u01f4\u0749\0\u0762\u0100;e\u074d\u074e\u622c\u0100gr\u0753\u0758ral;\u622bsection;\u62c2isible\u0100CT\u076c\u0772omma;\u6063imes;\u6062\u0180gpt\u077f\u0783\u0788on;\u412ef;\uc000\ud835\udd40a;\u4399cr;\u6110ilde;\u4128\u01eb\u079a\0\u079ecy;\u4406l\u803b\xcf\u40cf\u0280cfosu\u07ac\u07b7\u07bc\u07c2\u07d0\u0100iy\u07b1\u07b5rc;\u4134;\u4419r;\uc000\ud835\udd0dpf;\uc000\ud835\udd41\u01e3\u07c7\0\u07ccr;\uc000\ud835\udca5rcy;\u4408kcy;\u4404\u0380HJacfos\u07e4\u07e8\u07ec\u07f1\u07fd\u0802\u0808cy;\u4425cy;\u440cppa;\u439a\u0100ey\u07f6\u07fbdil;\u4136;\u441ar;\uc000\ud835\udd0epf;\uc000\ud835\udd42cr;\uc000\ud835\udca6\u0580JTaceflmost\u0825\u0829\u082c\u0850\u0863\u09b3\u09b8\u09c7\u09cd\u0a37\u0a47cy;\u4409\u803b<\u403c\u0280cmnpr\u0837\u083c\u0841\u0844\u084dute;\u4139bda;\u439bg;\u67ealacetrf;\u6112r;\u619e\u0180aey\u0857\u085c\u0861ron;\u413ddil;\u413b;\u441b\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087e\u08a9\u08b1\u08e0\u08e6\u08fc\u092f\u095b\u0390\u096a\u0100nr\u0883\u088fgleBracket;\u67e8row\u0180;BR\u0899\u089a\u089e\u6190ar;\u61e4ightArrow;\u61c6eiling;\u6308o\u01f5\u08b7\0\u08c3bleBracket;\u67e6n\u01d4\u08c8\0\u08d2eeVector;\u6961ector\u0100;B\u08db\u08dc\u61c3ar;\u6959loor;\u630aight\u0100AV\u08ef\u08f5rrow;\u6194ector;\u694e\u0100er\u0901\u0917e\u0180;AV\u0909\u090a\u0910\u62a3rrow;\u61a4ector;\u695aiangle\u0180;BE\u0924\u0925\u0929\u62b2ar;\u69cfqual;\u62b4p\u0180DTV\u0937\u0942\u094cownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61bfar;\u6958ector\u0100;B\u0965\u0966\u61bcar;\u6952ight\xe1\u039cs\u0300EFGLST\u097e\u098b\u0995\u099d\u09a2\u09adqualGreater;\u62daullEqual;\u6266reater;\u6276ess;\u6aa1lantEqual;\u6a7dilde;\u6272r;\uc000\ud835\udd0f\u0100;e\u09bd\u09be\u62d8ftarrow;\u61daidot;\u413f\u0180npw\u09d4\u0a16\u0a1bg\u0200LRlr\u09de\u09f7\u0a02\u0a10eft\u0100AR\u09e6\u09ecrrow;\u67f5ightArrow;\u67f7ightArrow;\u67f6eft\u0100ar\u03b3\u0a0aight\xe1\u03bfight\xe1\u03caf;\uc000\ud835\udd43er\u0100LR\u0a22\u0a2ceftArrow;\u6199ightArrow;\u6198\u0180cht\u0a3e\u0a40\u0a42\xf2\u084c;\u61b0rok;\u4141;\u626a\u0400acefiosu\u0a5a\u0a5d\u0a60\u0a77\u0a7c\u0a85\u0a8b\u0a8ep;\u6905y;\u441c\u0100dl\u0a65\u0a6fiumSpace;\u605flintrf;\u6133r;\uc000\ud835\udd10nusPlus;\u6213pf;\uc000\ud835\udd44c\xf2\u0a76;\u439c\u0480Jacefostu\u0aa3\u0aa7\u0aad\u0ac0\u0b14\u0b19\u0d91\u0d97\u0d9ecy;\u440acute;\u4143\u0180aey\u0ab4\u0ab9\u0aberon;\u4147dil;\u4145;\u441d\u0180gsw\u0ac7\u0af0\u0b0eative\u0180MTV\u0ad3\u0adf\u0ae8ediumSpace;\u600bhi\u0100cn\u0ae6\u0ad8\xeb\u0ad9eryThi\xee\u0ad9ted\u0100GL\u0af8\u0b06reaterGreate\xf2\u0673essLes\xf3\u0a48Line;\u400ar;\uc000\ud835\udd11\u0200Bnpt\u0b22\u0b28\u0b37\u0b3areak;\u6060BreakingSpace;\u40a0f;\u6115\u0680;CDEGHLNPRSTV\u0b55\u0b56\u0b6a\u0b7c\u0ba1\u0beb\u0c04\u0c5e\u0c84\u0ca6\u0cd8\u0d61\u0d85\u6aec\u0100ou\u0b5b\u0b64ngruent;\u6262pCap;\u626doubleVerticalBar;\u6226\u0180lqx\u0b83\u0b8a\u0b9bement;\u6209ual\u0100;T\u0b92\u0b93\u6260ilde;\uc000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0bb6\u0bb7\u0bbd\u0bc9\u0bd3\u0bd8\u0be5\u626fqual;\u6271ullEqual;\uc000\u2267\u0338reater;\uc000\u226b\u0338ess;\u6279lantEqual;\uc000\u2a7e\u0338ilde;\u6275ump\u0144\u0bf2\u0bfdownHump;\uc000\u224e\u0338qual;\uc000\u224f\u0338e\u0100fs\u0c0a\u0c27tTriangle\u0180;BE\u0c1a\u0c1b\u0c21\u62eaar;\uc000\u29cf\u0338qual;\u62ecs\u0300;EGLST\u0c35\u0c36\u0c3c\u0c44\u0c4b\u0c58\u626equal;\u6270reater;\u6278ess;\uc000\u226a\u0338lantEqual;\uc000\u2a7d\u0338ilde;\u6274ested\u0100GL\u0c68\u0c79reaterGreater;\uc000\u2aa2\u0338essLess;\uc000\u2aa1\u0338recedes\u0180;ES\u0c92\u0c93\u0c9b\u6280qual;\uc000\u2aaf\u0338lantEqual;\u62e0\u0100ei\u0cab\u0cb9verseElement;\u620cghtTriangle\u0180;BE\u0ccb\u0ccc\u0cd2\u62ebar;\uc000\u29d0\u0338qual;\u62ed\u0100qu\u0cdd\u0d0cuareSu\u0100bp\u0ce8\u0cf9set\u0100;E\u0cf0\u0cf3\uc000\u228f\u0338qual;\u62e2erset\u0100;E\u0d03\u0d06\uc000\u2290\u0338qual;\u62e3\u0180bcp\u0d13\u0d24\u0d4eset\u0100;E\u0d1b\u0d1e\uc000\u2282\u20d2qual;\u6288ceeds\u0200;EST\u0d32\u0d33\u0d3b\u0d46\u6281qual;\uc000\u2ab0\u0338lantEqual;\u62e1ilde;\uc000\u227f\u0338erset\u0100;E\u0d58\u0d5b\uc000\u2283\u20d2qual;\u6289ilde\u0200;EFT\u0d6e\u0d6f\u0d75\u0d7f\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uc000\ud835\udca9ilde\u803b\xd1\u40d1;\u439d\u0700Eacdfgmoprstuv\u0dbd\u0dc2\u0dc9\u0dd5\u0ddb\u0de0\u0de7\u0dfc\u0e02\u0e20\u0e22\u0e32\u0e3f\u0e44lig;\u4152cute\u803b\xd3\u40d3\u0100iy\u0dce\u0dd3rc\u803b\xd4\u40d4;\u441eblac;\u4150r;\uc000\ud835\udd12rave\u803b\xd2\u40d2\u0180aei\u0dee\u0df2\u0df6cr;\u414cga;\u43a9cron;\u439fpf;\uc000\ud835\udd46enCurly\u0100DQ\u0e0e\u0e1aoubleQuote;\u601cuote;\u6018;\u6a54\u0100cl\u0e27\u0e2cr;\uc000\ud835\udcaaash\u803b\xd8\u40d8i\u016c\u0e37\u0e3cde\u803b\xd5\u40d5es;\u6a37ml\u803b\xd6\u40d6er\u0100BP\u0e4b\u0e60\u0100ar\u0e50\u0e53r;\u603eac\u0100ek\u0e5a\u0e5c;\u63deet;\u63b4arenthesis;\u63dc\u0480acfhilors\u0e7f\u0e87\u0e8a\u0e8f\u0e92\u0e94\u0e9d\u0eb0\u0efcrtialD;\u6202y;\u441fr;\uc000\ud835\udd13i;\u43a6;\u43a0usMinus;\u40b1\u0100ip\u0ea2\u0eadncareplan\xe5\u069df;\u6119\u0200;eio\u0eb9\u0eba\u0ee0\u0ee4\u6abbcedes\u0200;EST\u0ec8\u0ec9\u0ecf\u0eda\u627aqual;\u6aaflantEqual;\u627cilde;\u627eme;\u6033\u0100dp\u0ee9\u0eeeuct;\u620fortion\u0100;a\u0225\u0ef9l;\u621d\u0100ci\u0f01\u0f06r;\uc000\ud835\udcab;\u43a8\u0200Ufos\u0f11\u0f16\u0f1b\u0f1fOT\u803b"\u4022r;\uc000\ud835\udd14pf;\u611acr;\uc000\ud835\udcac\u0600BEacefhiorsu\u0f3e\u0f43\u0f47\u0f60\u0f73\u0fa7\u0faa\u0fad\u1096\u10a9\u10b4\u10bearr;\u6910G\u803b\xae\u40ae\u0180cnr\u0f4e\u0f53\u0f56ute;\u4154g;\u67ebr\u0100;t\u0f5c\u0f5d\u61a0l;\u6916\u0180aey\u0f67\u0f6c\u0f71ron;\u4158dil;\u4156;\u4420\u0100;v\u0f78\u0f79\u611cerse\u0100EU\u0f82\u0f99\u0100lq\u0f87\u0f8eement;\u620builibrium;\u61cbpEquilibrium;\u696fr\xbb\u0f79o;\u43a1ght\u0400ACDFTUVa\u0fc1\u0feb\u0ff3\u1022\u1028\u105b\u1087\u03d8\u0100nr\u0fc6\u0fd2gleBracket;\u67e9row\u0180;BL\u0fdc\u0fdd\u0fe1\u6192ar;\u61e5eftArrow;\u61c4eiling;\u6309o\u01f5\u0ff9\0\u1005bleBracket;\u67e7n\u01d4\u100a\0\u1014eeVector;\u695dector\u0100;B\u101d\u101e\u61c2ar;\u6955loor;\u630b\u0100er\u102d\u1043e\u0180;AV\u1035\u1036\u103c\u62a2rrow;\u61a6ector;\u695biangle\u0180;BE\u1050\u1051\u1055\u62b3ar;\u69d0qual;\u62b5p\u0180DTV\u1063\u106e\u1078ownVector;\u694feeVector;\u695cector\u0100;B\u1082\u1083\u61bear;\u6954ector\u0100;B\u1091\u1092\u61c0ar;\u6953\u0100pu\u109b\u109ef;\u611dndImplies;\u6970ightarrow;\u61db\u0100ch\u10b9\u10bcr;\u611b;\u61b1leDelayed;\u69f4\u0680HOacfhimoqstu\u10e4\u10f1\u10f7\u10fd\u1119\u111e\u1151\u1156\u1161\u1167\u11b5\u11bb\u11bf\u0100Cc\u10e9\u10eeHcy;\u4429y;\u4428FTcy;\u442ccute;\u415a\u0280;aeiy\u1108\u1109\u110e\u1113\u1117\u6abcron;\u4160dil;\u415erc;\u415c;\u4421r;\uc000\ud835\udd16ort\u0200DLRU\u112a\u1134\u113e\u1149ownArrow\xbb\u041eeftArrow\xbb\u089aightArrow\xbb\u0fddpArrow;\u6191gma;\u43a3allCircle;\u6218pf;\uc000\ud835\udd4a\u0272\u116d\0\0\u1170t;\u621aare\u0200;ISU\u117b\u117c\u1189\u11af\u65a1ntersection;\u6293u\u0100bp\u118f\u119eset\u0100;E\u1197\u1198\u628fqual;\u6291erset\u0100;E\u11a8\u11a9\u6290qual;\u6292nion;\u6294cr;\uc000\ud835\udcaear;\u62c6\u0200bcmp\u11c8\u11db\u1209\u120b\u0100;s\u11cd\u11ce\u62d0et\u0100;E\u11cd\u11d5qual;\u6286\u0100ch\u11e0\u1205eeds\u0200;EST\u11ed\u11ee\u11f4\u11ff\u627bqual;\u6ab0lantEqual;\u627dilde;\u627fTh\xe1\u0f8c;\u6211\u0180;es\u1212\u1213\u1223\u62d1rset\u0100;E\u121c\u121d\u6283qual;\u6287et\xbb\u1213\u0580HRSacfhiors\u123e\u1244\u1249\u1255\u125e\u1271\u1276\u129f\u12c2\u12c8\u12d1ORN\u803b\xde\u40deADE;\u6122\u0100Hc\u124e\u1252cy;\u440by;\u4426\u0100bu\u125a\u125c;\u4009;\u43a4\u0180aey\u1265\u126a\u126fron;\u4164dil;\u4162;\u4422r;\uc000\ud835\udd17\u0100ei\u127b\u1289\u01f2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128e\u1298kSpace;\uc000\u205f\u200aSpace;\u6009lde\u0200;EFT\u12ab\u12ac\u12b2\u12bc\u623cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uc000\ud835\udd4bipleDot;\u60db\u0100ct\u12d6\u12dbr;\uc000\ud835\udcafrok;\u4166\u0ae1\u12f7\u130e\u131a\u1326\0\u132c\u1331\0\0\0\0\0\u1338\u133d\u1377\u1385\0\u13ff\u1404\u140a\u1410\u0100cr\u12fb\u1301ute\u803b\xda\u40dar\u0100;o\u1307\u1308\u619fcir;\u6949r\u01e3\u1313\0\u1316y;\u440eve;\u416c\u0100iy\u131e\u1323rc\u803b\xdb\u40db;\u4423blac;\u4170r;\uc000\ud835\udd18rave\u803b\xd9\u40d9acr;\u416a\u0100di\u1341\u1369er\u0100BP\u1348\u135d\u0100ar\u134d\u1350r;\u405fac\u0100ek\u1357\u1359;\u63dfet;\u63b5arenthesis;\u63ddon\u0100;P\u1370\u1371\u62c3lus;\u628e\u0100gp\u137b\u137fon;\u4172f;\uc000\ud835\udd4c\u0400ADETadps\u1395\u13ae\u13b8\u13c4\u03e8\u13d2\u13d7\u13f3rrow\u0180;BD\u1150\u13a0\u13a4ar;\u6912ownArrow;\u61c5ownArrow;\u6195quilibrium;\u696eee\u0100;A\u13cb\u13cc\u62a5rrow;\u61a5own\xe1\u03f3er\u0100LR\u13de\u13e8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13f9\u13fa\u43d2on;\u43a5ing;\u416ecr;\uc000\ud835\udcb0ilde;\u4168ml\u803b\xdc\u40dc\u0480Dbcdefosv\u1427\u142c\u1430\u1433\u143e\u1485\u148a\u1490\u1496ash;\u62abar;\u6aeby;\u4412ash\u0100;l\u143b\u143c\u62a9;\u6ae6\u0100er\u1443\u1445;\u62c1\u0180bty\u144c\u1450\u147aar;\u6016\u0100;i\u144f\u1455cal\u0200BLST\u1461\u1465\u146a\u1474ar;\u6223ine;\u407ceparator;\u6758ilde;\u6240ThinSpace;\u600ar;\uc000\ud835\udd19pf;\uc000\ud835\udd4dcr;\uc000\ud835\udcb1dash;\u62aa\u0280cefos\u14a7\u14ac\u14b1\u14b6\u14bcirc;\u4174dge;\u62c0r;\uc000\ud835\udd1apf;\uc000\ud835\udd4ecr;\uc000\ud835\udcb2\u0200fios\u14cb\u14d0\u14d2\u14d8r;\uc000\ud835\udd1b;\u439epf;\uc000\ud835\udd4fcr;\uc000\ud835\udcb3\u0480AIUacfosu\u14f1\u14f5\u14f9\u14fd\u1504\u150f\u1514\u151a\u1520cy;\u442fcy;\u4407cy;\u442ecute\u803b\xdd\u40dd\u0100iy\u1509\u150drc;\u4176;\u442br;\uc000\ud835\udd1cpf;\uc000\ud835\udd50cr;\uc000\ud835\udcb4ml;\u4178\u0400Hacdefos\u1535\u1539\u153f\u154b\u154f\u155d\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417d;\u4417ot;\u417b\u01f2\u1554\0\u155boWidt\xe8\u0ad9a;\u4396r;\u6128pf;\u6124cr;\uc000\ud835\udcb5\u0be1\u1583\u158a\u1590\0\u15b0\u15b6\u15bf\0\0\0\0\u15c6\u15db\u15eb\u165f\u166d\0\u1695\u169b\u16b2\u16b9\0\u16becute\u803b\xe1\u40e1reve;\u4103\u0300;Ediuy\u159c\u159d\u15a1\u15a3\u15a8\u15ad\u623e;\uc000\u223e\u0333;\u623frc\u803b\xe2\u40e2te\u80bb\xb4\u0306;\u4430lig\u803b\xe6\u40e6\u0100;r\xb2\u15ba;\uc000\ud835\udd1erave\u803b\xe0\u40e0\u0100ep\u15ca\u15d6\u0100fp\u15cf\u15d4sym;\u6135\xe8\u15d3ha;\u43b1\u0100ap\u15dfc\u0100cl\u15e4\u15e7r;\u4101g;\u6a3f\u0264\u15f0\0\0\u160a\u0280;adsv\u15fa\u15fb\u15ff\u1601\u1607\u6227nd;\u6a55;\u6a5clope;\u6a58;\u6a5a\u0380;elmrsz\u1618\u1619\u161b\u161e\u163f\u164f\u1659\u6220;\u69a4e\xbb\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163a\u163c\u163e;\u69a8;\u69a9;\u69aa;\u69ab;\u69ac;\u69ad;\u69ae;\u69aft\u0100;v\u1645\u1646\u621fb\u0100;d\u164c\u164d\u62be;\u699d\u0100pt\u1654\u1657h;\u6222\xbb\xb9arr;\u637c\u0100gp\u1663\u1667on;\u4105f;\uc000\ud835\udd52\u0380;Eaeiop\u12c1\u167b\u167d\u1682\u1684\u1687\u168a;\u6a70cir;\u6a6f;\u624ad;\u624bs;\u4027rox\u0100;e\u12c1\u1692\xf1\u1683ing\u803b\xe5\u40e5\u0180cty\u16a1\u16a6\u16a8r;\uc000\ud835\udcb6;\u402amp\u0100;e\u12c1\u16af\xf1\u0288ilde\u803b\xe3\u40e3ml\u803b\xe4\u40e4\u0100ci\u16c2\u16c8onin\xf4\u0272nt;\u6a11\u0800Nabcdefiklnoprsu\u16ed\u16f1\u1730\u173c\u1743\u1748\u1778\u177d\u17e0\u17e6\u1839\u1850\u170d\u193d\u1948\u1970ot;\u6aed\u0100cr\u16f6\u171ek\u0200ceps\u1700\u1705\u170d\u1713ong;\u624cpsilon;\u43f6rime;\u6035im\u0100;e\u171a\u171b\u623dq;\u62cd\u0176\u1722\u1726ee;\u62bded\u0100;g\u172c\u172d\u6305e\xbb\u172drk\u0100;t\u135c\u1737brk;\u63b6\u0100oy\u1701\u1741;\u4431quo;\u601e\u0280cmprt\u1753\u175b\u1761\u1764\u1768aus\u0100;e\u010a\u0109ptyv;\u69b0s\xe9\u170cno\xf5\u0113\u0180ahw\u176f\u1771\u1773;\u43b2;\u6136een;\u626cr;\uc000\ud835\udd1fg\u0380costuvw\u178d\u179d\u17b3\u17c1\u17d5\u17db\u17de\u0180aiu\u1794\u1796\u179a\xf0\u0760rc;\u65efp\xbb\u1371\u0180dpt\u17a4\u17a8\u17adot;\u6a00lus;\u6a01imes;\u6a02\u0271\u17b9\0\0\u17becup;\u6a06ar;\u6605riangle\u0100du\u17cd\u17d2own;\u65bdp;\u65b3plus;\u6a04e\xe5\u1444\xe5\u14adarow;\u690d\u0180ako\u17ed\u1826\u1835\u0100cn\u17f2\u1823k\u0180lst\u17fa\u05ab\u1802ozenge;\u69ebriangle\u0200;dlr\u1812\u1813\u1818\u181d\u65b4own;\u65beeft;\u65c2ight;\u65b8k;\u6423\u01b1\u182b\0\u1833\u01b2\u182f\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183e\u184d\u0100;q\u1843\u1846\uc000=\u20e5uiv;\uc000\u2261\u20e5t;\u6310\u0200ptwx\u1859\u185e\u1867\u186cf;\uc000\ud835\udd53\u0100;t\u13cb\u1863om\xbb\u13cctie;\u62c8\u0600DHUVbdhmptuv\u1885\u1896\u18aa\u18bb\u18d7\u18db\u18ec\u18ff\u1905\u190a\u1910\u1921\u0200LRlr\u188e\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18a1\u18a2\u18a4\u18a6\u18a8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18b3\u18b5\u18b7\u18b9;\u655d;\u655a;\u655c;\u6559\u0380;HLRhlr\u18ca\u18cb\u18cd\u18cf\u18d1\u18d3\u18d5\u6551;\u656c;\u6563;\u6560;\u656b;\u6562;\u655fox;\u69c9\u0200LRlr\u18e4\u18e6\u18e8\u18ea;\u6555;\u6552;\u6510;\u650c\u0280;DUdu\u06bd\u18f7\u18f9\u18fb\u18fd;\u6565;\u6568;\u652c;\u6534inus;\u629flus;\u629eimes;\u62a0\u0200LRlr\u1919\u191b\u191d\u191f;\u655b;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193b\u6502;\u656a;\u6561;\u655e;\u653c;\u6524;\u651c\u0100ev\u0123\u1942bar\u803b\xa6\u40a6\u0200ceio\u1951\u1956\u195a\u1960r;\uc000\ud835\udcb7mi;\u604fm\u0100;e\u171a\u171cl\u0180;bh\u1968\u1969\u196b\u405c;\u69c5sub;\u67c8\u016c\u1974\u197el\u0100;e\u1979\u197a\u6022t\xbb\u197ap\u0180;Ee\u012f\u1985\u1987;\u6aae\u0100;q\u06dc\u06db\u0ce1\u19a7\0\u19e8\u1a11\u1a15\u1a32\0\u1a37\u1a50\0\0\u1ab4\0\0\u1ac1\0\0\u1b21\u1b2e\u1b4d\u1b52\0\u1bfd\0\u1c0c\u0180cpr\u19ad\u19b2\u19ddute;\u4107\u0300;abcds\u19bf\u19c0\u19c4\u19ca\u19d5\u19d9\u6229nd;\u6a44rcup;\u6a49\u0100au\u19cf\u19d2p;\u6a4bp;\u6a47ot;\u6a40;\uc000\u2229\ufe00\u0100eo\u19e2\u19e5t;\u6041\xee\u0693\u0200aeiu\u19f0\u19fb\u1a01\u1a05\u01f0\u19f5\0\u19f8s;\u6a4don;\u410ddil\u803b\xe7\u40e7rc;\u4109ps\u0100;s\u1a0c\u1a0d\u6a4cm;\u6a50ot;\u410b\u0180dmn\u1a1b\u1a20\u1a26il\u80bb\xb8\u01adptyv;\u69b2t\u8100\xa2;e\u1a2d\u1a2e\u40a2r\xe4\u01b2r;\uc000\ud835\udd20\u0180cei\u1a3d\u1a40\u1a4dy;\u4447ck\u0100;m\u1a47\u1a48\u6713ark\xbb\u1a48;\u43c7r\u0380;Ecefms\u1a5f\u1a60\u1a62\u1a6b\u1aa4\u1aaa\u1aae\u65cb;\u69c3\u0180;el\u1a69\u1a6a\u1a6d\u42c6q;\u6257e\u0261\u1a74\0\0\u1a88rrow\u0100lr\u1a7c\u1a81eft;\u61baight;\u61bb\u0280RSacd\u1a92\u1a94\u1a96\u1a9a\u1a9f\xbb\u0f47;\u64c8st;\u629birc;\u629aash;\u629dnint;\u6a10id;\u6aefcir;\u69c2ubs\u0100;u\u1abb\u1abc\u6663it\xbb\u1abc\u02ec\u1ac7\u1ad4\u1afa\0\u1b0aon\u0100;e\u1acd\u1ace\u403a\u0100;q\xc7\xc6\u026d\u1ad9\0\0\u1ae2a\u0100;t\u1ade\u1adf\u402c;\u4040\u0180;fl\u1ae8\u1ae9\u1aeb\u6201\xee\u1160e\u0100mx\u1af1\u1af6ent\xbb\u1ae9e\xf3\u024d\u01e7\u1afe\0\u1b07\u0100;d\u12bb\u1b02ot;\u6a6dn\xf4\u0246\u0180fry\u1b10\u1b14\u1b17;\uc000\ud835\udd54o\xe4\u0254\u8100\xa9;s\u0155\u1b1dr;\u6117\u0100ao\u1b25\u1b29rr;\u61b5ss;\u6717\u0100cu\u1b32\u1b37r;\uc000\ud835\udcb8\u0100bp\u1b3c\u1b44\u0100;e\u1b41\u1b42\u6acf;\u6ad1\u0100;e\u1b49\u1b4a\u6ad0;\u6ad2dot;\u62ef\u0380delprvw\u1b60\u1b6c\u1b77\u1b82\u1bac\u1bd4\u1bf9arr\u0100lr\u1b68\u1b6a;\u6938;\u6935\u0270\u1b72\0\0\u1b75r;\u62dec;\u62dfarr\u0100;p\u1b7f\u1b80\u61b6;\u693d\u0300;bcdos\u1b8f\u1b90\u1b96\u1ba1\u1ba5\u1ba8\u622arcap;\u6a48\u0100au\u1b9b\u1b9ep;\u6a46p;\u6a4aot;\u628dr;\u6a45;\uc000\u222a\ufe00\u0200alrv\u1bb5\u1bbf\u1bde\u1be3rr\u0100;m\u1bbc\u1bbd\u61b7;\u693cy\u0180evw\u1bc7\u1bd4\u1bd8q\u0270\u1bce\0\0\u1bd2re\xe3\u1b73u\xe3\u1b75ee;\u62ceedge;\u62cfen\u803b\xa4\u40a4earrow\u0100lr\u1bee\u1bf3eft\xbb\u1b80ight\xbb\u1bbde\xe4\u1bdd\u0100ci\u1c01\u1c07onin\xf4\u01f7nt;\u6231lcty;\u632d\u0980AHabcdefhijlorstuwz\u1c38\u1c3b\u1c3f\u1c5d\u1c69\u1c75\u1c8a\u1c9e\u1cac\u1cb7\u1cfb\u1cff\u1d0d\u1d7b\u1d91\u1dab\u1dbb\u1dc6\u1dcdr\xf2\u0381ar;\u6965\u0200glrs\u1c48\u1c4d\u1c52\u1c54ger;\u6020eth;\u6138\xf2\u1133h\u0100;v\u1c5a\u1c5b\u6010\xbb\u090a\u016b\u1c61\u1c67arow;\u690fa\xe3\u0315\u0100ay\u1c6e\u1c73ron;\u410f;\u4434\u0180;ao\u0332\u1c7c\u1c84\u0100gr\u02bf\u1c81r;\u61catseq;\u6a77\u0180glm\u1c91\u1c94\u1c98\u803b\xb0\u40b0ta;\u43b4ptyv;\u69b1\u0100ir\u1ca3\u1ca8sht;\u697f;\uc000\ud835\udd21ar\u0100lr\u1cb3\u1cb5\xbb\u08dc\xbb\u101e\u0280aegsv\u1cc2\u0378\u1cd6\u1cdc\u1ce0m\u0180;os\u0326\u1cca\u1cd4nd\u0100;s\u0326\u1cd1uit;\u6666amma;\u43ddin;\u62f2\u0180;io\u1ce7\u1ce8\u1cf8\u40f7de\u8100\xf7;o\u1ce7\u1cf0ntimes;\u62c7n\xf8\u1cf7cy;\u4452c\u026f\u1d06\0\0\u1d0arn;\u631eop;\u630d\u0280lptuw\u1d18\u1d1d\u1d22\u1d49\u1d55lar;\u4024f;\uc000\ud835\udd55\u0280;emps\u030b\u1d2d\u1d37\u1d3d\u1d42q\u0100;d\u0352\u1d33ot;\u6251inus;\u6238lus;\u6214quare;\u62a1blebarwedg\xe5\xfan\u0180adh\u112e\u1d5d\u1d67ownarrow\xf3\u1c83arpoon\u0100lr\u1d72\u1d76ef\xf4\u1cb4igh\xf4\u1cb6\u0162\u1d7f\u1d85karo\xf7\u0f42\u026f\u1d8a\0\0\u1d8ern;\u631fop;\u630c\u0180cot\u1d98\u1da3\u1da6\u0100ry\u1d9d\u1da1;\uc000\ud835\udcb9;\u4455l;\u69f6rok;\u4111\u0100dr\u1db0\u1db4ot;\u62f1i\u0100;f\u1dba\u1816\u65bf\u0100ah\u1dc0\u1dc3r\xf2\u0429a\xf2\u0fa6angle;\u69a6\u0100ci\u1dd2\u1dd5y;\u445fgrarr;\u67ff\u0900Dacdefglmnopqrstux\u1e01\u1e09\u1e19\u1e38\u0578\u1e3c\u1e49\u1e61\u1e7e\u1ea5\u1eaf\u1ebd\u1ee1\u1f2a\u1f37\u1f44\u1f4e\u1f5a\u0100Do\u1e06\u1d34o\xf4\u1c89\u0100cs\u1e0e\u1e14ute\u803b\xe9\u40e9ter;\u6a6e\u0200aioy\u1e22\u1e27\u1e31\u1e36ron;\u411br\u0100;c\u1e2d\u1e2e\u6256\u803b\xea\u40ealon;\u6255;\u444dot;\u4117\u0100Dr\u1e41\u1e45ot;\u6252;\uc000\ud835\udd22\u0180;rs\u1e50\u1e51\u1e57\u6a9aave\u803b\xe8\u40e8\u0100;d\u1e5c\u1e5d\u6a96ot;\u6a98\u0200;ils\u1e6a\u1e6b\u1e72\u1e74\u6a99nters;\u63e7;\u6113\u0100;d\u1e79\u1e7a\u6a95ot;\u6a97\u0180aps\u1e85\u1e89\u1e97cr;\u4113ty\u0180;sv\u1e92\u1e93\u1e95\u6205et\xbb\u1e93p\u01001;\u1e9d\u1ea4\u0133\u1ea1\u1ea3;\u6004;\u6005\u6003\u0100gs\u1eaa\u1eac;\u414bp;\u6002\u0100gp\u1eb4\u1eb8on;\u4119f;\uc000\ud835\udd56\u0180als\u1ec4\u1ece\u1ed2r\u0100;s\u1eca\u1ecb\u62d5l;\u69e3us;\u6a71i\u0180;lv\u1eda\u1edb\u1edf\u43b5on\xbb\u1edb;\u43f5\u0200csuv\u1eea\u1ef3\u1f0b\u1f23\u0100io\u1eef\u1e31rc\xbb\u1e2e\u0269\u1ef9\0\0\u1efb\xed\u0548ant\u0100gl\u1f02\u1f06tr\xbb\u1e5dess\xbb\u1e7a\u0180aei\u1f12\u1f16\u1f1als;\u403dst;\u625fv\u0100;D\u0235\u1f20D;\u6a78parsl;\u69e5\u0100Da\u1f2f\u1f33ot;\u6253rr;\u6971\u0180cdi\u1f3e\u1f41\u1ef8r;\u612fo\xf4\u0352\u0100ah\u1f49\u1f4b;\u43b7\u803b\xf0\u40f0\u0100mr\u1f53\u1f57l\u803b\xeb\u40ebo;\u60ac\u0180cip\u1f61\u1f64\u1f67l;\u4021s\xf4\u056e\u0100eo\u1f6c\u1f74ctatio\xee\u0559nential\xe5\u0579\u09e1\u1f92\0\u1f9e\0\u1fa1\u1fa7\0\0\u1fc6\u1fcc\0\u1fd3\0\u1fe6\u1fea\u2000\0\u2008\u205allingdotse\xf1\u1e44y;\u4444male;\u6640\u0180ilr\u1fad\u1fb3\u1fc1lig;\u8000\ufb03\u0269\u1fb9\0\0\u1fbdg;\u8000\ufb00ig;\u8000\ufb04;\uc000\ud835\udd23lig;\u8000\ufb01lig;\uc000fj\u0180alt\u1fd9\u1fdc\u1fe1t;\u666dig;\u8000\ufb02ns;\u65b1of;\u4192\u01f0\u1fee\0\u1ff3f;\uc000\ud835\udd57\u0100ak\u05bf\u1ff7\u0100;v\u1ffc\u1ffd\u62d4;\u6ad9artint;\u6a0d\u0100ao\u200c\u2055\u0100cs\u2011\u2052\u03b1\u201a\u2030\u2038\u2045\u2048\0\u2050\u03b2\u2022\u2025\u2027\u202a\u202c\0\u202e\u803b\xbd\u40bd;\u6153\u803b\xbc\u40bc;\u6155;\u6159;\u615b\u01b3\u2034\0\u2036;\u6154;\u6156\u02b4\u203e\u2041\0\0\u2043\u803b\xbe\u40be;\u6157;\u615c5;\u6158\u01b6\u204c\0\u204e;\u615a;\u615d8;\u615el;\u6044wn;\u6322cr;\uc000\ud835\udcbb\u0880Eabcdefgijlnorstv\u2082\u2089\u209f\u20a5\u20b0\u20b4\u20f0\u20f5\u20fa\u20ff\u2103\u2112\u2138\u0317\u213e\u2152\u219e\u0100;l\u064d\u2087;\u6a8c\u0180cmp\u2090\u2095\u209dute;\u41f5ma\u0100;d\u209c\u1cda\u43b3;\u6a86reve;\u411f\u0100iy\u20aa\u20aerc;\u411d;\u4433ot;\u4121\u0200;lqs\u063e\u0642\u20bd\u20c9\u0180;qs\u063e\u064c\u20c4lan\xf4\u0665\u0200;cdl\u0665\u20d2\u20d5\u20e5c;\u6aa9ot\u0100;o\u20dc\u20dd\u6a80\u0100;l\u20e2\u20e3\u6a82;\u6a84\u0100;e\u20ea\u20ed\uc000\u22db\ufe00s;\u6a94r;\uc000\ud835\udd24\u0100;g\u0673\u061bmel;\u6137cy;\u4453\u0200;Eaj\u065a\u210c\u210e\u2110;\u6a92;\u6aa5;\u6aa4\u0200Eaes\u211b\u211d\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6a8arox\xbb\u2124\u0100;q\u212e\u212f\u6a88\u0100;q\u212e\u211bim;\u62e7pf;\uc000\ud835\udd58\u0100ci\u2143\u2146r;\u610am\u0180;el\u066b\u214e\u2150;\u6a8e;\u6a90\u8300>;cdlqr\u05ee\u2160\u216a\u216e\u2173\u2179\u0100ci\u2165\u2167;\u6aa7r;\u6a7aot;\u62d7Par;\u6995uest;\u6a7c\u0280adels\u2184\u216a\u2190\u0656\u219b\u01f0\u2189\0\u218epro\xf8\u209er;\u6978q\u0100lq\u063f\u2196les\xf3\u2088i\xed\u066b\u0100en\u21a3\u21adrtneqq;\uc000\u2269\ufe00\xc5\u21aa\u0500Aabcefkosy\u21c4\u21c7\u21f1\u21f5\u21fa\u2218\u221d\u222f\u2268\u227dr\xf2\u03a0\u0200ilmr\u21d0\u21d4\u21d7\u21dbrs\xf0\u1484f\xbb\u2024il\xf4\u06a9\u0100dr\u21e0\u21e4cy;\u444a\u0180;cw\u08f4\u21eb\u21efir;\u6948;\u61adar;\u610firc;\u4125\u0180alr\u2201\u220e\u2213rts\u0100;u\u2209\u220a\u6665it\xbb\u220alip;\u6026con;\u62b9r;\uc000\ud835\udd25s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223a\u223e\u2243\u225e\u2263rr;\u61fftht;\u623bk\u0100lr\u2249\u2253eftarrow;\u61a9ightarrow;\u61aaf;\uc000\ud835\udd59bar;\u6015\u0180clt\u226f\u2274\u2278r;\uc000\ud835\udcbdas\xe8\u21f4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xbb\u1c5b\u0ae1\u22a3\0\u22aa\0\u22b8\u22c5\u22ce\0\u22d5\u22f3\0\0\u22f8\u2322\u2367\u2362\u237f\0\u2386\u23aa\u23b4cute\u803b\xed\u40ed\u0180;iy\u0771\u22b0\u22b5rc\u803b\xee\u40ee;\u4438\u0100cx\u22bc\u22bfy;\u4435cl\u803b\xa1\u40a1\u0100fr\u039f\u22c9;\uc000\ud835\udd26rave\u803b\xec\u40ec\u0200;ino\u073e\u22dd\u22e9\u22ee\u0100in\u22e2\u22e6nt;\u6a0ct;\u622dfin;\u69dcta;\u6129lig;\u4133\u0180aop\u22fe\u231a\u231d\u0180cgt\u2305\u2308\u2317r;\u412b\u0180elp\u071f\u230f\u2313in\xe5\u078ear\xf4\u0720h;\u4131f;\u62b7ed;\u41b5\u0280;cfot\u04f4\u232c\u2331\u233d\u2341are;\u6105in\u0100;t\u2338\u2339\u621eie;\u69dddo\xf4\u2319\u0280;celp\u0757\u234c\u2350\u235b\u2361al;\u62ba\u0100gr\u2355\u2359er\xf3\u1563\xe3\u234darhk;\u6a17rod;\u6a3c\u0200cgpt\u236f\u2372\u2376\u237by;\u4451on;\u412ff;\uc000\ud835\udd5aa;\u43b9uest\u803b\xbf\u40bf\u0100ci\u238a\u238fr;\uc000\ud835\udcben\u0280;Edsv\u04f4\u239b\u239d\u23a1\u04f3;\u62f9ot;\u62f5\u0100;v\u23a6\u23a7\u62f4;\u62f3\u0100;i\u0777\u23aelde;\u4129\u01eb\u23b8\0\u23bccy;\u4456l\u803b\xef\u40ef\u0300cfmosu\u23cc\u23d7\u23dc\u23e1\u23e7\u23f5\u0100iy\u23d1\u23d5rc;\u4135;\u4439r;\uc000\ud835\udd27ath;\u4237pf;\uc000\ud835\udd5b\u01e3\u23ec\0\u23f1r;\uc000\ud835\udcbfrcy;\u4458kcy;\u4454\u0400acfghjos\u240b\u2416\u2422\u2427\u242d\u2431\u2435\u243bppa\u0100;v\u2413\u2414\u43ba;\u43f0\u0100ey\u241b\u2420dil;\u4137;\u443ar;\uc000\ud835\udd28reen;\u4138cy;\u4445cy;\u445cpf;\uc000\ud835\udd5ccr;\uc000\ud835\udcc0\u0b80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248d\u2491\u250e\u253d\u255a\u2580\u264e\u265e\u2665\u2679\u267d\u269a\u26b2\u26d8\u275d\u2768\u278b\u27c0\u2801\u2812\u0180art\u2477\u247a\u247cr\xf2\u09c6\xf2\u0395ail;\u691barr;\u690e\u0100;g\u0994\u248b;\u6a8bar;\u6962\u0963\u24a5\0\u24aa\0\u24b1\0\0\0\0\0\u24b5\u24ba\0\u24c6\u24c8\u24cd\0\u24f9ute;\u413amptyv;\u69b4ra\xee\u084cbda;\u43bbg\u0180;dl\u088e\u24c1\u24c3;\u6991\xe5\u088e;\u6a85uo\u803b\xab\u40abr\u0400;bfhlpst\u0899\u24de\u24e6\u24e9\u24eb\u24ee\u24f1\u24f5\u0100;f\u089d\u24e3s;\u691fs;\u691d\xeb\u2252p;\u61abl;\u6939im;\u6973l;\u61a2\u0180;ae\u24ff\u2500\u2504\u6aabil;\u6919\u0100;s\u2509\u250a\u6aad;\uc000\u2aad\ufe00\u0180abr\u2515\u2519\u251drr;\u690crk;\u6772\u0100ak\u2522\u252cc\u0100ek\u2528\u252a;\u407b;\u405b\u0100es\u2531\u2533;\u698bl\u0100du\u2539\u253b;\u698f;\u698d\u0200aeuy\u2546\u254b\u2556\u2558ron;\u413e\u0100di\u2550\u2554il;\u413c\xec\u08b0\xe2\u2529;\u443b\u0200cqrs\u2563\u2566\u256d\u257da;\u6936uo\u0100;r\u0e19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694bh;\u61b2\u0280;fgqs\u258b\u258c\u0989\u25f3\u25ff\u6264t\u0280ahlrt\u2598\u25a4\u25b7\u25c2\u25e8rrow\u0100;t\u0899\u25a1a\xe9\u24f6arpoon\u0100du\u25af\u25b4own\xbb\u045ap\xbb\u0966eftarrows;\u61c7ight\u0180ahs\u25cd\u25d6\u25derrow\u0100;s\u08f4\u08a7arpoon\xf3\u0f98quigarro\xf7\u21f0hreetimes;\u62cb\u0180;qs\u258b\u0993\u25falan\xf4\u09ac\u0280;cdgs\u09ac\u260a\u260d\u261d\u2628c;\u6aa8ot\u0100;o\u2614\u2615\u6a7f\u0100;r\u261a\u261b\u6a81;\u6a83\u0100;e\u2622\u2625\uc000\u22da\ufe00s;\u6a93\u0280adegs\u2633\u2639\u263d\u2649\u264bppro\xf8\u24c6ot;\u62d6q\u0100gq\u2643\u2645\xf4\u0989gt\xf2\u248c\xf4\u099bi\xed\u09b2\u0180ilr\u2655\u08e1\u265asht;\u697c;\uc000\ud835\udd29\u0100;E\u099c\u2663;\u6a91\u0161\u2669\u2676r\u0100du\u25b2\u266e\u0100;l\u0965\u2673;\u696alk;\u6584cy;\u4459\u0280;acht\u0a48\u2688\u268b\u2691\u2696r\xf2\u25c1orne\xf2\u1d08ard;\u696bri;\u65fa\u0100io\u269f\u26a4dot;\u4140ust\u0100;a\u26ac\u26ad\u63b0che\xbb\u26ad\u0200Eaes\u26bb\u26bd\u26c9\u26d4;\u6268p\u0100;p\u26c3\u26c4\u6a89rox\xbb\u26c4\u0100;q\u26ce\u26cf\u6a87\u0100;q\u26ce\u26bbim;\u62e6\u0400abnoptwz\u26e9\u26f4\u26f7\u271a\u272f\u2741\u2747\u2750\u0100nr\u26ee\u26f1g;\u67ecr;\u61fdr\xeb\u08c1g\u0180lmr\u26ff\u270d\u2714eft\u0100ar\u09e6\u2707ight\xe1\u09f2apsto;\u67fcight\xe1\u09fdparrow\u0100lr\u2725\u2729ef\xf4\u24edight;\u61ac\u0180afl\u2736\u2739\u273dr;\u6985;\uc000\ud835\udd5dus;\u6a2dimes;\u6a34\u0161\u274b\u274fst;\u6217\xe1\u134e\u0180;ef\u2757\u2758\u1800\u65cange\xbb\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277c\u2785\u2787r\xf2\u08a8orne\xf2\u1d8car\u0100;d\u0f98\u2783;\u696d;\u600eri;\u62bf\u0300achiqt\u2798\u279d\u0a40\u27a2\u27ae\u27bbquo;\u6039r;\uc000\ud835\udcc1m\u0180;eg\u09b2\u27aa\u27ac;\u6a8d;\u6a8f\u0100bu\u252a\u27b3o\u0100;r\u0e1f\u27b9;\u601arok;\u4142\u8400<;cdhilqr\u082b\u27d2\u2639\u27dc\u27e0\u27e5\u27ea\u27f0\u0100ci\u27d7\u27d9;\u6aa6r;\u6a79re\xe5\u25f2mes;\u62c9arr;\u6976uest;\u6a7b\u0100Pi\u27f5\u27f9ar;\u6996\u0180;ef\u2800\u092d\u181b\u65c3r\u0100du\u2807\u280dshar;\u694ahar;\u6966\u0100en\u2817\u2821rtneqq;\uc000\u2268\ufe00\xc5\u281e\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288e\u2893\u28a0\u28a5\u28a8\u28da\u28e2\u28e4\u0a83\u28f3\u2902Dot;\u623a\u0200clpr\u284e\u2852\u2863\u287dr\u803b\xaf\u40af\u0100et\u2857\u2859;\u6642\u0100;e\u285e\u285f\u6720se\xbb\u285f\u0100;s\u103b\u2868to\u0200;dlu\u103b\u2873\u2877\u287bow\xee\u048cef\xf4\u090f\xf0\u13d1ker;\u65ae\u0100oy\u2887\u288cmma;\u6a29;\u443cash;\u6014asuredangle\xbb\u1626r;\uc000\ud835\udd2ao;\u6127\u0180cdn\u28af\u28b4\u28c9ro\u803b\xb5\u40b5\u0200;acd\u1464\u28bd\u28c0\u28c4s\xf4\u16a7ir;\u6af0ot\u80bb\xb7\u01b5us\u0180;bd\u28d2\u1903\u28d3\u6212\u0100;u\u1d3c\u28d8;\u6a2a\u0163\u28de\u28e1p;\u6adb\xf2\u2212\xf0\u0a81\u0100dp\u28e9\u28eeels;\u62a7f;\uc000\ud835\udd5e\u0100ct\u28f8\u28fdr;\uc000\ud835\udcc2pos\xbb\u159d\u0180;lm\u2909\u290a\u290d\u43bctimap;\u62b8\u0c00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297e\u2989\u2998\u29da\u29e9\u2a15\u2a1a\u2a58\u2a5d\u2a83\u2a95\u2aa4\u2aa8\u2b04\u2b07\u2b44\u2b7f\u2bae\u2c34\u2c67\u2c7c\u2ce9\u0100gt\u2947\u294b;\uc000\u22d9\u0338\u0100;v\u2950\u0bcf\uc000\u226b\u20d2\u0180elt\u295a\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61cdightarrow;\u61ce;\uc000\u22d8\u0338\u0100;v\u297b\u0c47\uc000\u226a\u20d2ightarrow;\u61cf\u0100Dd\u298e\u2993ash;\u62afash;\u62ae\u0280bcnpt\u29a3\u29a7\u29ac\u29b1\u29ccla\xbb\u02deute;\u4144g;\uc000\u2220\u20d2\u0280;Eiop\u0d84\u29bc\u29c0\u29c5\u29c8;\uc000\u2a70\u0338d;\uc000\u224b\u0338s;\u4149ro\xf8\u0d84ur\u0100;a\u29d3\u29d4\u666el\u0100;s\u29d3\u0b38\u01f3\u29df\0\u29e3p\u80bb\xa0\u0b37mp\u0100;e\u0bf9\u0c00\u0280aeouy\u29f4\u29fe\u2a03\u2a10\u2a13\u01f0\u29f9\0\u29fb;\u6a43on;\u4148dil;\u4146ng\u0100;d\u0d7e\u2a0aot;\uc000\u2a6d\u0338p;\u6a42;\u443dash;\u6013\u0380;Aadqsx\u0b92\u2a29\u2a2d\u2a3b\u2a41\u2a45\u2a50rr;\u61d7r\u0100hr\u2a33\u2a36k;\u6924\u0100;o\u13f2\u13f0ot;\uc000\u2250\u0338ui\xf6\u0b63\u0100ei\u2a4a\u2a4ear;\u6928\xed\u0b98ist\u0100;s\u0ba0\u0b9fr;\uc000\ud835\udd2b\u0200Eest\u0bc5\u2a66\u2a79\u2a7c\u0180;qs\u0bbc\u2a6d\u0be1\u0180;qs\u0bbc\u0bc5\u2a74lan\xf4\u0be2i\xed\u0bea\u0100;r\u0bb6\u2a81\xbb\u0bb7\u0180Aap\u2a8a\u2a8d\u2a91r\xf2\u2971rr;\u61aear;\u6af2\u0180;sv\u0f8d\u2a9c\u0f8c\u0100;d\u2aa1\u2aa2\u62fc;\u62facy;\u445a\u0380AEadest\u2ab7\u2aba\u2abe\u2ac2\u2ac5\u2af6\u2af9r\xf2\u2966;\uc000\u2266\u0338rr;\u619ar;\u6025\u0200;fqs\u0c3b\u2ace\u2ae3\u2aeft\u0100ar\u2ad4\u2ad9rro\xf7\u2ac1ightarro\xf7\u2a90\u0180;qs\u0c3b\u2aba\u2aealan\xf4\u0c55\u0100;s\u0c55\u2af4\xbb\u0c36i\xed\u0c5d\u0100;r\u0c35\u2afei\u0100;e\u0c1a\u0c25i\xe4\u0d90\u0100pt\u2b0c\u2b11f;\uc000\ud835\udd5f\u8180\xac;in\u2b19\u2b1a\u2b36\u40acn\u0200;Edv\u0b89\u2b24\u2b28\u2b2e;\uc000\u22f9\u0338ot;\uc000\u22f5\u0338\u01e1\u0b89\u2b33\u2b35;\u62f7;\u62f6i\u0100;v\u0cb8\u2b3c\u01e1\u0cb8\u2b41\u2b43;\u62fe;\u62fd\u0180aor\u2b4b\u2b63\u2b69r\u0200;ast\u0b7b\u2b55\u2b5a\u2b5flle\xec\u0b7bl;\uc000\u2afd\u20e5;\uc000\u2202\u0338lint;\u6a14\u0180;ce\u0c92\u2b70\u2b73u\xe5\u0ca5\u0100;c\u0c98\u2b78\u0100;e\u0c92\u2b7d\xf1\u0c98\u0200Aait\u2b88\u2b8b\u2b9d\u2ba7r\xf2\u2988rr\u0180;cw\u2b94\u2b95\u2b99\u619b;\uc000\u2933\u0338;\uc000\u219d\u0338ghtarrow\xbb\u2b95ri\u0100;e\u0ccb\u0cd6\u0380chimpqu\u2bbd\u2bcd\u2bd9\u2b04\u0b78\u2be4\u2bef\u0200;cer\u0d32\u2bc6\u0d37\u2bc9u\xe5\u0d45;\uc000\ud835\udcc3ort\u026d\u2b05\0\0\u2bd6ar\xe1\u2b56m\u0100;e\u0d6e\u2bdf\u0100;q\u0d74\u0d73su\u0100bp\u2beb\u2bed\xe5\u0cf8\xe5\u0d0b\u0180bcp\u2bf6\u2c11\u2c19\u0200;Ees\u2bff\u2c00\u0d22\u2c04\u6284;\uc000\u2ac5\u0338et\u0100;e\u0d1b\u2c0bq\u0100;q\u0d23\u2c00c\u0100;e\u0d32\u2c17\xf1\u0d38\u0200;Ees\u2c22\u2c23\u0d5f\u2c27\u6285;\uc000\u2ac6\u0338et\u0100;e\u0d58\u2c2eq\u0100;q\u0d60\u2c23\u0200gilr\u2c3d\u2c3f\u2c45\u2c47\xec\u0bd7lde\u803b\xf1\u40f1\xe7\u0c43iangle\u0100lr\u2c52\u2c5ceft\u0100;e\u0c1a\u2c5a\xf1\u0c26ight\u0100;e\u0ccb\u2c65\xf1\u0cd7\u0100;m\u2c6c\u2c6d\u43bd\u0180;es\u2c74\u2c75\u2c79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2c8f\u2c94\u2c99\u2c9e\u2ca3\u2cb0\u2cb6\u2cd3\u2ce3ash;\u62adarr;\u6904p;\uc000\u224d\u20d2ash;\u62ac\u0100et\u2ca8\u2cac;\uc000\u2265\u20d2;\uc000>\u20d2nfin;\u69de\u0180Aet\u2cbd\u2cc1\u2cc5rr;\u6902;\uc000\u2264\u20d2\u0100;r\u2cca\u2ccd\uc000<\u20d2ie;\uc000\u22b4\u20d2\u0100At\u2cd8\u2cdcrr;\u6903rie;\uc000\u22b5\u20d2im;\uc000\u223c\u20d2\u0180Aan\u2cf0\u2cf4\u2d02rr;\u61d6r\u0100hr\u2cfa\u2cfdk;\u6923\u0100;o\u13e7\u13e5ear;\u6927\u1253\u1a95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2d2d\0\u2d38\u2d48\u2d60\u2d65\u2d72\u2d84\u1b07\0\0\u2d8d\u2dab\0\u2dc8\u2dce\0\u2ddc\u2e19\u2e2b\u2e3e\u2e43\u0100cs\u2d31\u1a97ute\u803b\xf3\u40f3\u0100iy\u2d3c\u2d45r\u0100;c\u1a9e\u2d42\u803b\xf4\u40f4;\u443e\u0280abios\u1aa0\u2d52\u2d57\u01c8\u2d5alac;\u4151v;\u6a38old;\u69bclig;\u4153\u0100cr\u2d69\u2d6dir;\u69bf;\uc000\ud835\udd2c\u036f\u2d79\0\0\u2d7c\0\u2d82n;\u42dbave\u803b\xf2\u40f2;\u69c1\u0100bm\u2d88\u0df4ar;\u69b5\u0200acit\u2d95\u2d98\u2da5\u2da8r\xf2\u1a80\u0100ir\u2d9d\u2da0r;\u69beoss;\u69bbn\xe5\u0e52;\u69c0\u0180aei\u2db1\u2db5\u2db9cr;\u414dga;\u43c9\u0180cdn\u2dc0\u2dc5\u01cdron;\u43bf;\u69b6pf;\uc000\ud835\udd60\u0180ael\u2dd4\u2dd7\u01d2r;\u69b7rp;\u69b9\u0380;adiosv\u2dea\u2deb\u2dee\u2e08\u2e0d\u2e10\u2e16\u6228r\xf2\u1a86\u0200;efm\u2df7\u2df8\u2e02\u2e05\u6a5dr\u0100;o\u2dfe\u2dff\u6134f\xbb\u2dff\u803b\xaa\u40aa\u803b\xba\u40bagof;\u62b6r;\u6a56lope;\u6a57;\u6a5b\u0180clo\u2e1f\u2e21\u2e27\xf2\u2e01ash\u803b\xf8\u40f8l;\u6298i\u016c\u2e2f\u2e34de\u803b\xf5\u40f5es\u0100;a\u01db\u2e3as;\u6a36ml\u803b\xf6\u40f6bar;\u633d\u0ae1\u2e5e\0\u2e7d\0\u2e80\u2e9d\0\u2ea2\u2eb9\0\0\u2ecb\u0e9c\0\u2f13\0\0\u2f2b\u2fbc\0\u2fc8r\u0200;ast\u0403\u2e67\u2e72\u0e85\u8100\xb6;l\u2e6d\u2e6e\u40b6le\xec\u0403\u0269\u2e78\0\0\u2e7bm;\u6af3;\u6afdy;\u443fr\u0280cimpt\u2e8b\u2e8f\u2e93\u1865\u2e97nt;\u4025od;\u402eil;\u6030enk;\u6031r;\uc000\ud835\udd2d\u0180imo\u2ea8\u2eb0\u2eb4\u0100;v\u2ead\u2eae\u43c6;\u43d5ma\xf4\u0a76ne;\u660e\u0180;tv\u2ebf\u2ec0\u2ec8\u43c0chfork\xbb\u1ffd;\u43d6\u0100au\u2ecf\u2edfn\u0100ck\u2ed5\u2eddk\u0100;h\u21f4\u2edb;\u610e\xf6\u21f4s\u0480;abcdemst\u2ef3\u2ef4\u1908\u2ef9\u2efd\u2f04\u2f06\u2f0a\u2f0e\u402bcir;\u6a23ir;\u6a22\u0100ou\u1d40\u2f02;\u6a25;\u6a72n\u80bb\xb1\u0e9dim;\u6a26wo;\u6a27\u0180ipu\u2f19\u2f20\u2f25ntint;\u6a15f;\uc000\ud835\udd61nd\u803b\xa3\u40a3\u0500;Eaceinosu\u0ec8\u2f3f\u2f41\u2f44\u2f47\u2f81\u2f89\u2f92\u2f7e\u2fb6;\u6ab3p;\u6ab7u\xe5\u0ed9\u0100;c\u0ece\u2f4c\u0300;acens\u0ec8\u2f59\u2f5f\u2f66\u2f68\u2f7eppro\xf8\u2f43urlye\xf1\u0ed9\xf1\u0ece\u0180aes\u2f6f\u2f76\u2f7approx;\u6ab9qq;\u6ab5im;\u62e8i\xed\u0edfme\u0100;s\u2f88\u0eae\u6032\u0180Eas\u2f78\u2f90\u2f7a\xf0\u2f75\u0180dfp\u0eec\u2f99\u2faf\u0180als\u2fa0\u2fa5\u2faalar;\u632eine;\u6312urf;\u6313\u0100;t\u0efb\u2fb4\xef\u0efbrel;\u62b0\u0100ci\u2fc0\u2fc5r;\uc000\ud835\udcc5;\u43c8ncsp;\u6008\u0300fiopsu\u2fda\u22e2\u2fdf\u2fe5\u2feb\u2ff1r;\uc000\ud835\udd2epf;\uc000\ud835\udd62rime;\u6057cr;\uc000\ud835\udcc6\u0180aeo\u2ff8\u3009\u3013t\u0100ei\u2ffe\u3005rnion\xf3\u06b0nt;\u6a16st\u0100;e\u3010\u3011\u403f\xf1\u1f19\xf4\u0f14\u0a80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30e0\u310e\u312b\u3147\u3162\u3172\u318e\u3206\u3215\u3224\u3229\u3258\u326e\u3272\u3290\u32b0\u32b7\u0180art\u3047\u304a\u304cr\xf2\u10b3\xf2\u03ddail;\u691car\xf2\u1c65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307f\u308f\u3094\u30cc\u0100eu\u306d\u3071;\uc000\u223d\u0331te;\u4155i\xe3\u116emptyv;\u69b3g\u0200;del\u0fd1\u3089\u308b\u308d;\u6992;\u69a5\xe5\u0fd1uo\u803b\xbb\u40bbr\u0580;abcfhlpstw\u0fdc\u30ac\u30af\u30b7\u30b9\u30bc\u30be\u30c0\u30c3\u30c7\u30cap;\u6975\u0100;f\u0fe0\u30b4s;\u6920;\u6933s;\u691e\xeb\u225d\xf0\u272el;\u6945im;\u6974l;\u61a3;\u619d\u0100ai\u30d1\u30d5il;\u691ao\u0100;n\u30db\u30dc\u6236al\xf3\u0f1e\u0180abr\u30e7\u30ea\u30eer\xf2\u17e5rk;\u6773\u0100ak\u30f3\u30fdc\u0100ek\u30f9\u30fb;\u407d;\u405d\u0100es\u3102\u3104;\u698cl\u0100du\u310a\u310c;\u698e;\u6990\u0200aeuy\u3117\u311c\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xec\u0ff2\xe2\u30fa;\u4440\u0200clqs\u3134\u3137\u313d\u3144a;\u6937dhar;\u6969uo\u0100;r\u020e\u020dh;\u61b3\u0180acg\u314e\u315f\u0f44l\u0200;ips\u0f78\u3158\u315b\u109cn\xe5\u10bbar\xf4\u0fa9t;\u65ad\u0180ilr\u3169\u1023\u316esht;\u697d;\uc000\ud835\udd2f\u0100ao\u3177\u3186r\u0100du\u317d\u317f\xbb\u047b\u0100;l\u1091\u3184;\u696c\u0100;v\u318b\u318c\u43c1;\u43f1\u0180gns\u3195\u31f9\u31fcht\u0300ahlrst\u31a4\u31b0\u31c2\u31d8\u31e4\u31eerrow\u0100;t\u0fdc\u31ada\xe9\u30c8arpoon\u0100du\u31bb\u31bfow\xee\u317ep\xbb\u1092eft\u0100ah\u31ca\u31d0rrow\xf3\u0feaarpoon\xf3\u0551ightarrows;\u61c9quigarro\xf7\u30cbhreetimes;\u62ccg;\u42daingdotse\xf1\u1f32\u0180ahm\u320d\u3210\u3213r\xf2\u0feaa\xf2\u0551;\u600foust\u0100;a\u321e\u321f\u63b1che\xbb\u321fmid;\u6aee\u0200abpt\u3232\u323d\u3240\u3252\u0100nr\u3237\u323ag;\u67edr;\u61fer\xeb\u1003\u0180afl\u3247\u324a\u324er;\u6986;\uc000\ud835\udd63us;\u6a2eimes;\u6a35\u0100ap\u325d\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6a12ar\xf2\u31e3\u0200achq\u327b\u3280\u10bc\u3285quo;\u603ar;\uc000\ud835\udcc7\u0100bu\u30fb\u328ao\u0100;r\u0214\u0213\u0180hir\u3297\u329b\u32a0re\xe5\u31f8mes;\u62cai\u0200;efl\u32aa\u1059\u1821\u32ab\u65b9tri;\u69celuhar;\u6968;\u611e\u0d61\u32d5\u32db\u32df\u332c\u3338\u3371\0\u337a\u33a4\0\0\u33ec\u33f0\0\u3428\u3448\u345a\u34ad\u34b1\u34ca\u34f1\0\u3616\0\0\u3633cute;\u415bqu\xef\u27ba\u0500;Eaceinpsy\u11ed\u32f3\u32f5\u32ff\u3302\u330b\u330f\u331f\u3326\u3329;\u6ab4\u01f0\u32fa\0\u32fc;\u6ab8on;\u4161u\xe5\u11fe\u0100;d\u11f3\u3307il;\u415frc;\u415d\u0180Eas\u3316\u3318\u331b;\u6ab6p;\u6abaim;\u62e9olint;\u6a13i\xed\u1204;\u4441ot\u0180;be\u3334\u1d47\u3335\u62c5;\u6a66\u0380Aacmstx\u3346\u334a\u3357\u335b\u335e\u3363\u336drr;\u61d8r\u0100hr\u3350\u3352\xeb\u2228\u0100;o\u0a36\u0a34t\u803b\xa7\u40a7i;\u403bwar;\u6929m\u0100in\u3369\xf0nu\xf3\xf1t;\u6736r\u0100;o\u3376\u2055\uc000\ud835\udd30\u0200acoy\u3382\u3386\u3391\u33a0rp;\u666f\u0100hy\u338b\u338fcy;\u4449;\u4448rt\u026d\u3399\0\0\u339ci\xe4\u1464ara\xec\u2e6f\u803b\xad\u40ad\u0100gm\u33a8\u33b4ma\u0180;fv\u33b1\u33b2\u33b2\u43c3;\u43c2\u0400;deglnpr\u12ab\u33c5\u33c9\u33ce\u33d6\u33de\u33e1\u33e6ot;\u6a6a\u0100;q\u12b1\u12b0\u0100;E\u33d3\u33d4\u6a9e;\u6aa0\u0100;E\u33db\u33dc\u6a9d;\u6a9fe;\u6246lus;\u6a24arr;\u6972ar\xf2\u113d\u0200aeit\u33f8\u3408\u340f\u3417\u0100ls\u33fd\u3404lsetm\xe9\u336ahp;\u6a33parsl;\u69e4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341c\u341d\u6aaa\u0100;s\u3422\u3423\u6aac;\uc000\u2aac\ufe00\u0180flp\u342e\u3433\u3442tcy;\u444c\u0100;b\u3438\u3439\u402f\u0100;a\u343e\u343f\u69c4r;\u633ff;\uc000\ud835\udd64a\u0100dr\u344d\u0402es\u0100;u\u3454\u3455\u6660it\xbb\u3455\u0180csu\u3460\u3479\u349f\u0100au\u3465\u346fp\u0100;s\u1188\u346b;\uc000\u2293\ufe00p\u0100;s\u11b4\u3475;\uc000\u2294\ufe00u\u0100bp\u347f\u348f\u0180;es\u1197\u119c\u3486et\u0100;e\u1197\u348d\xf1\u119d\u0180;es\u11a8\u11ad\u3496et\u0100;e\u11a8\u349d\xf1\u11ae\u0180;af\u117b\u34a6\u05b0r\u0165\u34ab\u05b1\xbb\u117car\xf2\u1148\u0200cemt\u34b9\u34be\u34c2\u34c5r;\uc000\ud835\udcc8tm\xee\xf1i\xec\u3415ar\xe6\u11be\u0100ar\u34ce\u34d5r\u0100;f\u34d4\u17bf\u6606\u0100an\u34da\u34edight\u0100ep\u34e3\u34eapsilo\xee\u1ee0h\xe9\u2eafs\xbb\u2852\u0280bcmnp\u34fb\u355e\u1209\u358b\u358e\u0480;Edemnprs\u350e\u350f\u3511\u3515\u351e\u3523\u352c\u3531\u3536\u6282;\u6ac5ot;\u6abd\u0100;d\u11da\u351aot;\u6ac3ult;\u6ac1\u0100Ee\u3528\u352a;\u6acb;\u628alus;\u6abfarr;\u6979\u0180eiu\u353d\u3552\u3555t\u0180;en\u350e\u3545\u354bq\u0100;q\u11da\u350feq\u0100;q\u352b\u3528m;\u6ac7\u0100bp\u355a\u355c;\u6ad5;\u6ad3c\u0300;acens\u11ed\u356c\u3572\u3579\u357b\u3326ppro\xf8\u32faurlye\xf1\u11fe\xf1\u11f3\u0180aes\u3582\u3588\u331bppro\xf8\u331aq\xf1\u3317g;\u666a\u0680123;Edehlmnps\u35a9\u35ac\u35af\u121c\u35b2\u35b4\u35c0\u35c9\u35d5\u35da\u35df\u35e8\u35ed\u803b\xb9\u40b9\u803b\xb2\u40b2\u803b\xb3\u40b3;\u6ac6\u0100os\u35b9\u35bct;\u6abeub;\u6ad8\u0100;d\u1222\u35c5ot;\u6ac4s\u0100ou\u35cf\u35d2l;\u67c9b;\u6ad7arr;\u697bult;\u6ac2\u0100Ee\u35e4\u35e6;\u6acc;\u628blus;\u6ac0\u0180eiu\u35f4\u3609\u360ct\u0180;en\u121c\u35fc\u3602q\u0100;q\u1222\u35b2eq\u0100;q\u35e7\u35e4m;\u6ac8\u0100bp\u3611\u3613;\u6ad4;\u6ad6\u0180Aan\u361c\u3620\u362drr;\u61d9r\u0100hr\u3626\u3628\xeb\u222e\u0100;o\u0a2b\u0a29war;\u692alig\u803b\xdf\u40df\u0be1\u3651\u365d\u3660\u12ce\u3673\u3679\0\u367e\u36c2\0\0\0\0\0\u36db\u3703\0\u3709\u376c\0\0\0\u3787\u0272\u3656\0\0\u365bget;\u6316;\u43c4r\xeb\u0e5f\u0180aey\u3666\u366b\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uc000\ud835\udd31\u0200eiko\u3686\u369d\u36b5\u36bc\u01f2\u368b\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369b\u43b8ym;\u43d1\u0100cn\u36a2\u36b2k\u0100as\u36a8\u36aeppro\xf8\u12c1im\xbb\u12acs\xf0\u129e\u0100as\u36ba\u36ae\xf0\u12c1rn\u803b\xfe\u40fe\u01ec\u031f\u36c6\u22e7es\u8180\xd7;bd\u36cf\u36d0\u36d8\u40d7\u0100;a\u190f\u36d5r;\u6a31;\u6a30\u0180eps\u36e1\u36e3\u3700\xe1\u2a4d\u0200;bcf\u0486\u36ec\u36f0\u36f4ot;\u6336ir;\u6af1\u0100;o\u36f9\u36fc\uc000\ud835\udd65rk;\u6ada\xe1\u3362rime;\u6034\u0180aip\u370f\u3712\u3764d\xe5\u1248\u0380adempst\u3721\u374d\u3740\u3751\u3757\u375c\u375fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65b5own\xbb\u1dbbeft\u0100;e\u2800\u373e\xf1\u092e;\u625cight\u0100;e\u32aa\u374b\xf1\u105aot;\u65ecinus;\u6a3alus;\u6a39b;\u69cdime;\u6a3bezium;\u63e2\u0180cht\u3772\u377d\u3781\u0100ry\u3777\u377b;\uc000\ud835\udcc9;\u4446cy;\u445brok;\u4167\u0100io\u378b\u378ex\xf4\u1777head\u0100lr\u3797\u37a0eftarro\xf7\u084fightarrow\xbb\u0f5d\u0900AHabcdfghlmoprstuw\u37d0\u37d3\u37d7\u37e4\u37f0\u37fc\u380e\u381c\u3823\u3834\u3851\u385d\u386b\u38a9\u38cc\u38d2\u38ea\u38f6r\xf2\u03edar;\u6963\u0100cr\u37dc\u37e2ute\u803b\xfa\u40fa\xf2\u1150r\u01e3\u37ea\0\u37edy;\u445eve;\u416d\u0100iy\u37f5\u37farc\u803b\xfb\u40fb;\u4443\u0180abh\u3803\u3806\u380br\xf2\u13adlac;\u4171a\xf2\u13c3\u0100ir\u3813\u3818sht;\u697e;\uc000\ud835\udd32rave\u803b\xf9\u40f9\u0161\u3827\u3831r\u0100lr\u382c\u382e\xbb\u0957\xbb\u1083lk;\u6580\u0100ct\u3839\u384d\u026f\u383f\0\0\u384arn\u0100;e\u3845\u3846\u631cr\xbb\u3846op;\u630fri;\u65f8\u0100al\u3856\u385acr;\u416b\u80bb\xa8\u0349\u0100gp\u3862\u3866on;\u4173f;\uc000\ud835\udd66\u0300adhlsu\u114b\u3878\u387d\u1372\u3891\u38a0own\xe1\u13b3arpoon\u0100lr\u3888\u388cef\xf4\u382digh\xf4\u382fi\u0180;hl\u3899\u389a\u389c\u43c5\xbb\u13faon\xbb\u389aparrows;\u61c8\u0180cit\u38b0\u38c4\u38c8\u026f\u38b6\0\0\u38c1rn\u0100;e\u38bc\u38bd\u631dr\xbb\u38bdop;\u630eng;\u416fri;\u65f9cr;\uc000\ud835\udcca\u0180dir\u38d9\u38dd\u38e2ot;\u62f0lde;\u4169i\u0100;f\u3730\u38e8\xbb\u1813\u0100am\u38ef\u38f2r\xf2\u38a8l\u803b\xfc\u40fcangle;\u69a7\u0780ABDacdeflnoprsz\u391c\u391f\u3929\u392d\u39b5\u39b8\u39bd\u39df\u39e4\u39e8\u39f3\u39f9\u39fd\u3a01\u3a20r\xf2\u03f7ar\u0100;v\u3926\u3927\u6ae8;\u6ae9as\xe8\u03e1\u0100nr\u3932\u3937grt;\u699c\u0380eknprst\u34e3\u3946\u394b\u3952\u395d\u3964\u3996app\xe1\u2415othin\xe7\u1e96\u0180hir\u34eb\u2ec8\u3959op\xf4\u2fb5\u0100;h\u13b7\u3962\xef\u318d\u0100iu\u3969\u396dgm\xe1\u33b3\u0100bp\u3972\u3984setneq\u0100;q\u397d\u3980\uc000\u228a\ufe00;\uc000\u2acb\ufe00setneq\u0100;q\u398f\u3992\uc000\u228b\ufe00;\uc000\u2acc\ufe00\u0100hr\u399b\u399fet\xe1\u369ciangle\u0100lr\u39aa\u39afeft\xbb\u0925ight\xbb\u1051y;\u4432ash\xbb\u1036\u0180elr\u39c4\u39d2\u39d7\u0180;be\u2dea\u39cb\u39cfar;\u62bbq;\u625alip;\u62ee\u0100bt\u39dc\u1468a\xf2\u1469r;\uc000\ud835\udd33tr\xe9\u39aesu\u0100bp\u39ef\u39f1\xbb\u0d1c\xbb\u0d59pf;\uc000\ud835\udd67ro\xf0\u0efbtr\xe9\u39b4\u0100cu\u3a06\u3a0br;\uc000\ud835\udccb\u0100bp\u3a10\u3a18n\u0100Ee\u3980\u3a16\xbb\u397en\u0100Ee\u3992\u3a1e\xbb\u3990igzag;\u699a\u0380cefoprs\u3a36\u3a3b\u3a56\u3a5b\u3a54\u3a61\u3a6airc;\u4175\u0100di\u3a40\u3a51\u0100bg\u3a45\u3a49ar;\u6a5fe\u0100;q\u15fa\u3a4f;\u6259erp;\u6118r;\uc000\ud835\udd34pf;\uc000\ud835\udd68\u0100;e\u1479\u3a66at\xe8\u1479cr;\uc000\ud835\udccc\u0ae3\u178e\u3a87\0\u3a8b\0\u3a90\u3a9b\0\0\u3a9d\u3aa8\u3aab\u3aaf\0\0\u3ac3\u3ace\0\u3ad8\u17dc\u17dftr\xe9\u17d1r;\uc000\ud835\udd35\u0100Aa\u3a94\u3a97r\xf2\u03c3r\xf2\u09f6;\u43be\u0100Aa\u3aa1\u3aa4r\xf2\u03b8r\xf2\u09eba\xf0\u2713is;\u62fb\u0180dpt\u17a4\u3ab5\u3abe\u0100fl\u3aba\u17a9;\uc000\ud835\udd69im\xe5\u17b2\u0100Aa\u3ac7\u3acar\xf2\u03cer\xf2\u0a01\u0100cq\u3ad2\u17b8r;\uc000\ud835\udccd\u0100pt\u17d6\u3adcr\xe9\u17d4\u0400acefiosu\u3af0\u3afd\u3b08\u3b0c\u3b11\u3b15\u3b1b\u3b21c\u0100uy\u3af6\u3afbte\u803b\xfd\u40fd;\u444f\u0100iy\u3b02\u3b06rc;\u4177;\u444bn\u803b\xa5\u40a5r;\uc000\ud835\udd36cy;\u4457pf;\uc000\ud835\udd6acr;\uc000\ud835\udcce\u0100cm\u3b26\u3b29y;\u444el\u803b\xff\u40ff\u0500acdefhiosw\u3b42\u3b48\u3b54\u3b58\u3b64\u3b69\u3b6d\u3b74\u3b7a\u3b80cute;\u417a\u0100ay\u3b4d\u3b52ron;\u417e;\u4437ot;\u417c\u0100et\u3b5d\u3b61tr\xe6\u155fa;\u43b6r;\uc000\ud835\udd37cy;\u4436grarr;\u61ddpf;\uc000\ud835\udd6bcr;\uc000\ud835\udccf\u0100jn\u3b85\u3b87;\u600dj;\u600c'.split("").map((function(e){return e.charCodeAt(0)})))},4214:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array("\u0200aglq\t\x15\x18\x1b\u026d\x0f\0\0\x12p;\u4026os;\u4027t;\u403et;\u403cuot;\u4022".split("").map((function(e){return e.charCodeAt(0)})))},3487:function(e,t){"use strict";function n(e){for(var t=1;t0&&o.has(this.stack[this.stack.length-1]);){var a=this.stack.pop();null===(n=(t=this.cbs).onclosetag)||void 0===n||n.call(t,a,!0)}this.isVoidElement(e)||(this.stack.push(e),m.has(e)?this.foreignContext.push(!0):v.has(e)&&this.foreignContext.push(!1)),null===(i=(r=this.cbs).onopentagname)||void 0===i||i.call(r,e),this.cbs.onopentag&&(this.attribs={})},e.prototype.endOpenTag=function(e){var t,n;this.startIndex=this.openTagStart,this.attribs&&(null===(n=(t=this.cbs).onopentag)||void 0===n||n.call(t,this.tagname,this.attribs,e),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""},e.prototype.onopentagend=function(e){this.endIndex=e,this.endOpenTag(!1),this.startIndex=e+1},e.prototype.onclosetag=function(e,t){var n,r,i,o,a,s;this.endIndex=t;var l=this.getSlice(e,t);if(this.lowerCaseTagNames&&(l=l.toLowerCase()),(m.has(l)||v.has(l))&&this.foreignContext.pop(),this.isVoidElement(l))this.options.xmlMode||"br"!==l||(null===(r=(n=this.cbs).onopentagname)||void 0===r||r.call(n,"br"),null===(o=(i=this.cbs).onopentag)||void 0===o||o.call(i,"br",{},!0),null===(s=(a=this.cbs).onclosetag)||void 0===s||s.call(a,"br",!1));else{var u=this.stack.lastIndexOf(l);if(-1!==u)if(this.cbs.onclosetag)for(var c=this.stack.length-u;c--;)this.cbs.onclosetag(this.stack.pop(),0!==c);else this.stack.length=u;else this.options.xmlMode||"p"!==l||(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=t+1},e.prototype.onselfclosingtag=function(e){this.endIndex=e,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=e+1):this.onopentagend(e)},e.prototype.closeCurrentTag=function(e){var t,n,r=this.tagname;this.endOpenTag(e),this.stack[this.stack.length-1]===r&&(null===(n=(t=this.cbs).onclosetag)||void 0===n||n.call(t,r,!e),this.stack.pop())},e.prototype.onattribname=function(e,t){this.startIndex=e;var n=this.getSlice(e,t);this.attribname=this.lowerCaseAttributeNames?n.toLowerCase():n},e.prototype.onattribdata=function(e,t){this.attribvalue+=this.getSlice(e,t)},e.prototype.onattribentity=function(e){this.attribvalue+=(0,s.fromCodePoint)(e)},e.prototype.onattribend=function(e,t){var n,r;this.endIndex=t,null===(r=(n=this.cbs).onattribute)||void 0===r||r.call(n,this.attribname,this.attribvalue,e===a.QuoteType.Double?'"':e===a.QuoteType.Single?"'":e===a.QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""},e.prototype.getInstructionName=function(e){var t=e.search(g),n=t<0?e:e.substr(0,t);return this.lowerCaseTagNames&&(n=n.toLowerCase()),n},e.prototype.ondeclaration=function(e,t){this.endIndex=t;var n=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){var r=this.getInstructionName(n);this.cbs.onprocessinginstruction("!".concat(r),"!".concat(n))}this.startIndex=t+1},e.prototype.onprocessinginstruction=function(e,t){this.endIndex=t;var n=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){var r=this.getInstructionName(n);this.cbs.onprocessinginstruction("?".concat(r),"?".concat(n))}this.startIndex=t+1},e.prototype.oncomment=function(e,t,n){var r,i,o,a;this.endIndex=t,null===(i=(r=this.cbs).oncomment)||void 0===i||i.call(r,this.getSlice(e,t-n)),null===(a=(o=this.cbs).oncommentend)||void 0===a||a.call(o),this.startIndex=t+1},e.prototype.oncdata=function(e,t,n){var r,i,o,a,s,l,u,c,f,d;this.endIndex=t;var h=this.getSlice(e,t-n);this.options.xmlMode||this.options.recognizeCDATA?(null===(i=(r=this.cbs).oncdatastart)||void 0===i||i.call(r),null===(a=(o=this.cbs).ontext)||void 0===a||a.call(o,h),null===(l=(s=this.cbs).oncdataend)||void 0===l||l.call(s)):(null===(c=(u=this.cbs).oncomment)||void 0===c||c.call(u,"[CDATA[".concat(h,"]]")),null===(d=(f=this.cbs).oncommentend)||void 0===d||d.call(f)),this.startIndex=t+1},e.prototype.onend=function(){var e,t;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(var n=this.stack.length;n>0;this.cbs.onclosetag(this.stack[--n],!0));}null===(t=(e=this.cbs).onend)||void 0===t||t.call(e)},e.prototype.reset=function(){var e,t,n,r;null===(t=(e=this.cbs).onreset)||void 0===t||t.call(e),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,null===(r=(n=this.cbs).onparserinit)||void 0===r||r.call(n,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1},e.prototype.parseComplete=function(e){this.reset(),this.end(e)},e.prototype.getSlice=function(e,t){for(;e-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();for(var n=this.buffers[0].slice(e-this.bufferOffset,t-this.bufferOffset);t-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),n+=this.buffers[0].slice(0,t-this.bufferOffset);return n},e.prototype.shiftBuffer=function(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()},e.prototype.write=function(e){var t,n;this.ended?null===(n=(t=this.cbs).onerror)||void 0===n||n.call(t,new Error(".write() after done!")):(this.buffers.push(e),this.tokenizer.running&&(this.tokenizer.write(e),this.writeIndex++))},e.prototype.end=function(e){var t,n;this.ended?null===(n=(t=this.cbs).onerror)||void 0===n||n.call(t,Error(".end() after done!")):(e&&this.write(e),this.ended=!0,this.tokenizer.end())},e.prototype.pause=function(){this.tokenizer.pause()},e.prototype.resume=function(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex=r.Zero&&e<=r.Nine}!function(e){e[e.Tab=9]="Tab",e[e.NewLine=10]="NewLine",e[e.FormFeed=12]="FormFeed",e[e.CarriageReturn=13]="CarriageReturn",e[e.Space=32]="Space",e[e.ExclamationMark=33]="ExclamationMark",e[e.Num=35]="Num",e[e.Amp=38]="Amp",e[e.SingleQuote=39]="SingleQuote",e[e.DoubleQuote=34]="DoubleQuote",e[e.Dash=45]="Dash",e[e.Slash=47]="Slash",e[e.Zero=48]="Zero",e[e.Nine=57]="Nine",e[e.Semi=59]="Semi",e[e.Lt=60]="Lt",e[e.Eq=61]="Eq",e[e.Gt=62]="Gt",e[e.Questionmark=63]="Questionmark",e[e.UpperA=65]="UpperA",e[e.LowerA=97]="LowerA",e[e.UpperF=70]="UpperF",e[e.LowerF=102]="LowerF",e[e.UpperZ=90]="UpperZ",e[e.LowerZ=122]="LowerZ",e[e.LowerX=120]="LowerX",e[e.OpeningSquareBracket=91]="OpeningSquareBracket"}(r||(r={})),function(e){e[e.Text=1]="Text",e[e.BeforeTagName=2]="BeforeTagName",e[e.InTagName=3]="InTagName",e[e.InSelfClosingTag=4]="InSelfClosingTag",e[e.BeforeClosingTagName=5]="BeforeClosingTagName",e[e.InClosingTagName=6]="InClosingTagName",e[e.AfterClosingTagName=7]="AfterClosingTagName",e[e.BeforeAttributeName=8]="BeforeAttributeName",e[e.InAttributeName=9]="InAttributeName",e[e.AfterAttributeName=10]="AfterAttributeName",e[e.BeforeAttributeValue=11]="BeforeAttributeValue",e[e.InAttributeValueDq=12]="InAttributeValueDq",e[e.InAttributeValueSq=13]="InAttributeValueSq",e[e.InAttributeValueNq=14]="InAttributeValueNq",e[e.BeforeDeclaration=15]="BeforeDeclaration",e[e.InDeclaration=16]="InDeclaration",e[e.InProcessingInstruction=17]="InProcessingInstruction",e[e.BeforeComment=18]="BeforeComment",e[e.CDATASequence=19]="CDATASequence",e[e.InSpecialComment=20]="InSpecialComment",e[e.InCommentLike=21]="InCommentLike",e[e.BeforeSpecialS=22]="BeforeSpecialS",e[e.SpecialStartSequence=23]="SpecialStartSequence",e[e.InSpecialTag=24]="InSpecialTag",e[e.BeforeEntity=25]="BeforeEntity",e[e.BeforeNumericEntity=26]="BeforeNumericEntity",e[e.InNamedEntity=27]="InNamedEntity",e[e.InNumericEntity=28]="InNumericEntity",e[e.InHexEntity=29]="InHexEntity"}(i||(i={})),function(e){e[e.NoValue=0]="NoValue",e[e.Unquoted=1]="Unquoted",e[e.Single=2]="Single",e[e.Double=3]="Double"}(o=t.QuoteType||(t.QuoteType={}));var c={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])},f=function(){function e(e,t){var n=e.xmlMode,r=void 0!==n&&n,o=e.decodeEntities,s=void 0===o||o;this.cbs=t,this.state=i.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=i.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=r,this.decodeEntities=s,this.entityTrie=r?a.xmlDecodeTree:a.htmlDecodeTree}return e.prototype.reset=function(){this.state=i.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=i.Text,this.currentSequence=void 0,this.running=!0,this.offset=0},e.prototype.write=function(e){this.offset+=this.buffer.length,this.buffer=e,this.parse()},e.prototype.end=function(){this.running&&this.finish()},e.prototype.pause=function(){this.running=!1},e.prototype.resume=function(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=i.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&e===r.Amp&&(this.state=i.BeforeEntity)},e.prototype.stateSpecialStartSequence=function(e){var t=this.sequenceIndex===this.currentSequence.length;if(t?l(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.isSpecial=!1;this.sequenceIndex=0,this.state=i.InTagName,this.stateInTagName(e)},e.prototype.stateInSpecialTag=function(e){if(this.sequenceIndex===this.currentSequence.length){if(e===r.Gt||s(e)){var t=this.index-this.currentSequence.length;if(this.sectionStart=r.LowerA&&e<=r.LowerZ||e>=r.UpperA&&e<=r.UpperZ}(e)},e.prototype.startSpecial=function(e,t){this.isSpecial=!0,this.currentSequence=e,this.sequenceIndex=t,this.state=i.SpecialStartSequence},e.prototype.stateBeforeTagName=function(e){if(e===r.ExclamationMark)this.state=i.BeforeDeclaration,this.sectionStart=this.index+1;else if(e===r.Questionmark)this.state=i.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(e)){var t=32|e;this.sectionStart=this.index,this.xmlMode||t!==c.TitleEnd[2]?this.state=this.xmlMode||t!==c.ScriptEnd[2]?i.InTagName:i.BeforeSpecialS:this.startSpecial(c.TitleEnd,3)}else e===r.Slash?this.state=i.BeforeClosingTagName:(this.state=i.Text,this.stateText(e))},e.prototype.stateInTagName=function(e){l(e)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=i.BeforeAttributeName,this.stateBeforeAttributeName(e))},e.prototype.stateBeforeClosingTagName=function(e){s(e)||(e===r.Gt?this.state=i.Text:(this.state=this.isTagStartChar(e)?i.InClosingTagName:i.InSpecialComment,this.sectionStart=this.index))},e.prototype.stateInClosingTagName=function(e){(e===r.Gt||s(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=i.AfterClosingTagName,this.stateAfterClosingTagName(e))},e.prototype.stateAfterClosingTagName=function(e){(e===r.Gt||this.fastForwardTo(r.Gt))&&(this.state=i.Text,this.sectionStart=this.index+1)},e.prototype.stateBeforeAttributeName=function(e){e===r.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=i.InSpecialTag,this.sequenceIndex=0):this.state=i.Text,this.baseState=this.state,this.sectionStart=this.index+1):e===r.Slash?this.state=i.InSelfClosingTag:s(e)||(this.state=i.InAttributeName,this.sectionStart=this.index)},e.prototype.stateInSelfClosingTag=function(e){e===r.Gt?(this.cbs.onselfclosingtag(this.index),this.state=i.Text,this.baseState=i.Text,this.sectionStart=this.index+1,this.isSpecial=!1):s(e)||(this.state=i.BeforeAttributeName,this.stateBeforeAttributeName(e))},e.prototype.stateInAttributeName=function(e){(e===r.Eq||l(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=-1,this.state=i.AfterAttributeName,this.stateAfterAttributeName(e))},e.prototype.stateAfterAttributeName=function(e){e===r.Eq?this.state=i.BeforeAttributeValue:e===r.Slash||e===r.Gt?(this.cbs.onattribend(o.NoValue,this.index),this.state=i.BeforeAttributeName,this.stateBeforeAttributeName(e)):s(e)||(this.cbs.onattribend(o.NoValue,this.index),this.state=i.InAttributeName,this.sectionStart=this.index)},e.prototype.stateBeforeAttributeValue=function(e){e===r.DoubleQuote?(this.state=i.InAttributeValueDq,this.sectionStart=this.index+1):e===r.SingleQuote?(this.state=i.InAttributeValueSq,this.sectionStart=this.index+1):s(e)||(this.sectionStart=this.index,this.state=i.InAttributeValueNq,this.stateInAttributeValueNoQuotes(e))},e.prototype.handleInAttributeValue=function(e,t){e===t||!this.decodeEntities&&this.fastForwardTo(t)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(t===r.DoubleQuote?o.Double:o.Single,this.index),this.state=i.BeforeAttributeName):this.decodeEntities&&e===r.Amp&&(this.baseState=this.state,this.state=i.BeforeEntity)},e.prototype.stateInAttributeValueDoubleQuotes=function(e){this.handleInAttributeValue(e,r.DoubleQuote)},e.prototype.stateInAttributeValueSingleQuotes=function(e){this.handleInAttributeValue(e,r.SingleQuote)},e.prototype.stateInAttributeValueNoQuotes=function(e){s(e)||e===r.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(o.Unquoted,this.index),this.state=i.BeforeAttributeName,this.stateBeforeAttributeName(e)):this.decodeEntities&&e===r.Amp&&(this.baseState=this.state,this.state=i.BeforeEntity)},e.prototype.stateBeforeDeclaration=function(e){e===r.OpeningSquareBracket?(this.state=i.CDATASequence,this.sequenceIndex=0):this.state=e===r.Dash?i.BeforeComment:i.InDeclaration},e.prototype.stateInDeclaration=function(e){(e===r.Gt||this.fastForwardTo(r.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=i.Text,this.sectionStart=this.index+1)},e.prototype.stateInProcessingInstruction=function(e){(e===r.Gt||this.fastForwardTo(r.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=i.Text,this.sectionStart=this.index+1)},e.prototype.stateBeforeComment=function(e){e===r.Dash?(this.state=i.InCommentLike,this.currentSequence=c.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=i.InDeclaration},e.prototype.stateInSpecialComment=function(e){(e===r.Gt||this.fastForwardTo(r.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=i.Text,this.sectionStart=this.index+1)},e.prototype.stateBeforeSpecialS=function(e){var t=32|e;t===c.ScriptEnd[3]?this.startSpecial(c.ScriptEnd,4):t===c.StyleEnd[3]?this.startSpecial(c.StyleEnd,4):(this.state=i.InTagName,this.stateInTagName(e))},e.prototype.stateBeforeEntity=function(e){this.entityExcess=1,this.entityResult=0,e===r.Num?this.state=i.BeforeNumericEntity:e===r.Amp||(this.trieIndex=0,this.trieCurrent=this.entityTrie[0],this.state=i.InNamedEntity,this.stateInNamedEntity(e))},e.prototype.stateInNamedEntity=function(e){if(this.entityExcess+=1,this.trieIndex=(0,a.determineBranch)(this.entityTrie,this.trieCurrent,this.trieIndex+1,e),this.trieIndex<0)return this.emitNamedEntity(),void this.index--;this.trieCurrent=this.entityTrie[this.trieIndex];var t=this.trieCurrent&a.BinTrieFlags.VALUE_LENGTH;if(t){var n=(t>>14)-1;if(this.allowLegacyEntity()||e===r.Semi){var i=this.index-this.entityExcess+1;i>this.sectionStart&&this.emitPartial(this.sectionStart,i),this.entityResult=this.trieIndex,this.trieIndex+=n,this.entityExcess=0,this.sectionStart=this.index+1,0===n&&this.emitNamedEntity()}else this.trieIndex+=n}},e.prototype.emitNamedEntity=function(){if(this.state=this.baseState,0!==this.entityResult)switch((this.entityTrie[this.entityResult]&a.BinTrieFlags.VALUE_LENGTH)>>14){case 1:this.emitCodePoint(this.entityTrie[this.entityResult]&~a.BinTrieFlags.VALUE_LENGTH);break;case 2:this.emitCodePoint(this.entityTrie[this.entityResult+1]);break;case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}},e.prototype.stateBeforeNumericEntity=function(e){(32|e)===r.LowerX?(this.entityExcess++,this.state=i.InHexEntity):(this.state=i.InNumericEntity,this.stateInNumericEntity(e))},e.prototype.emitNumericEntity=function(e){var t=this.index-this.entityExcess-1;t+2+Number(this.state===i.InHexEntity)!==this.index&&(t>this.sectionStart&&this.emitPartial(this.sectionStart,t),this.sectionStart=this.index+Number(e),this.emitCodePoint((0,a.replaceCodePoint)(this.entityResult))),this.state=this.baseState},e.prototype.stateInNumericEntity=function(e){e===r.Semi?this.emitNumericEntity(!0):u(e)?(this.entityResult=10*this.entityResult+(e-r.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},e.prototype.stateInHexEntity=function(e){e===r.Semi?this.emitNumericEntity(!0):u(e)?(this.entityResult=16*this.entityResult+(e-r.Zero),this.entityExcess++):!function(e){return e>=r.UpperA&&e<=r.UpperF||e>=r.LowerA&&e<=r.LowerF}(e)?(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--):(this.entityResult=16*this.entityResult+((32|e)-r.LowerA+10),this.entityExcess++)},e.prototype.allowLegacyEntity=function(){return!this.xmlMode&&(this.baseState===i.Text||this.baseState===i.InSpecialTag)},e.prototype.cleanup=function(){this.running&&this.sectionStart!==this.index&&(this.state===i.Text||this.state===i.InSpecialTag&&0===this.sequenceIndex?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):this.state!==i.InAttributeValueDq&&this.state!==i.InAttributeValueSq&&this.state!==i.InAttributeValueNq||(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))},e.prototype.shouldContinue=function(){return this.index>>1,i=e[r];if(!(0>>1;ro(l,n))uo(c,l)?(e[r]=c,e[u]=n,r=u):(e[r]=l,e[s]=n,r=s);else{if(!(uo(c,n)))break e;e[r]=c,e[u]=n,r=u}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"===typeof performance&&"function"===typeof performance.now){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var u=[],c=[],f=1,d=null,h=3,p=!1,m=!1,v=!1,g="function"===typeof setTimeout?setTimeout:null,y="function"===typeof clearTimeout?clearTimeout:null,b="undefined"!==typeof setImmediate?setImmediate:null;function w(e){for(var t=r(c);null!==t;){if(null===t.callback)i(c);else{if(!(t.startTime<=e))break;i(c),t.sortIndex=t.expirationTime,n(u,t)}t=r(c)}}function x(e){if(v=!1,w(e),!m)if(null!==r(u))m=!0,P(_);else{var t=r(c);null!==t&&L(x,t.startTime-e)}}function _(e,n){m=!1,v&&(v=!1,y(O),O=-1),p=!0;var o=h;try{for(w(n),d=r(u);null!==d&&(!(d.expirationTime>n)||e&&!N());){var a=d.callback;if("function"===typeof a){d.callback=null,h=d.priorityLevel;var s=a(d.expirationTime<=n);n=t.unstable_now(),"function"===typeof s?d.callback=s:d===r(u)&&i(u),w(n)}else i(u);d=r(u)}if(null!==d)var l=!0;else{var f=r(c);null!==f&&L(x,f.startTime-n),l=!1}return l}finally{d=null,h=o,p=!1}}"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var k,S=!1,E=null,O=-1,C=5,T=-1;function N(){return!(t.unstable_now()-Te||125a?(e.sortIndex=o,n(c,e),null===r(u)&&e===r(c)&&(v?(y(O),O=-1):v=!0,L(x,o-a))):(e.sortIndex=s,n(u,e),m||p||(m=!0,P(_))),e},t.unstable_shouldYield=N,t.unstable_wrapCallback=function(e){var t=h;return function(){var n=h;h=t;try{return e.apply(this,arguments)}finally{h=n}}}},9541:function(e,t,n){"use strict";e.exports=n(794)},7849:function(e){"use strict";var t=function(){};e.exports=t},516:function(e,t,n){"use strict";e.exports=n.p+"static/media/index.cd351d7c31d0d3fccf96.cjs"},2500:function(){},2959:function(){},5728:function(){},9806:function(){},9299:function(){}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};n.t=function(r,i){if(1&i&&(r=this(r)),8&i)return r;if("object"===typeof r&&r){if(4&i&&r.__esModule)return r;if(16&i&&"function"===typeof r.then)return r}var o=Object.create(null);n.r(o);var a={};e=e||[null,t({}),t([]),t(t)];for(var s=2&i&&r;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach((function(e){a[e]=function(){return r[e]}}));return a.default=function(){return r},n.d(o,a),o}}(),n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},n.p="/cht-tech-radar-contributors/",function(){"use strict";var e={};n.r(e),n.d(e,{exclude:function(){return At},extract:function(){return Et},parse:function(){return Ot},parseUrl:function(){return Tt},pick:function(){return Mt},stringify:function(){return Ct},stringifyUrl:function(){return Nt}});var t=n(5423),r=n.t(t,2),i=n(1442);function o(e){if(Array.isArray(e))return e}function a(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[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw o}}}}function p(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function m(e){return function(e){if(Array.isArray(e))return a(e)}(e)||p(e)||s(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 v(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){for(var n=0;n=0&&(t.hash=e.substr(n),e=e.substr(0,n));var r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function I(e,t,n,r){void 0===r&&(r={});var i=r,o=i.window,a=void 0===o?document.defaultView:o,s=i.v5Compat,l=void 0!==s&&s,u=a.history,f=c.Pop,d=null,h=p();function p(){return(u.state||{idx:null}).idx}function m(){f=c.Pop;var e=p(),t=null==e?null:e-h;h=e,d&&d({action:f,location:g.location,delta:t})}function v(e){var t="null"!==a.location.origin?a.location.origin:a.location.href,n="string"===typeof e?e:D(e);return A(t,"No window.location.(origin|href) available to create URL for href: "+n),new URL(n,t)}null==h&&(h=0,u.replaceState(T({},u.state,{idx:h}),""));var g={get action(){return f},get location(){return e(a,u)},listen:function(e){if(d)throw new Error("A history only accepts one active listener");return a.addEventListener(M,m),d=e,function(){a.removeEventListener(M,m),d=null}},createHref:function(e){return t(a,e)},createURL:v,encodeLocation:function(e){var t=v(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){f=c.Push;var r=L(g.location,e,t);n&&n(r,e);var i=P(r,h=p()+1),o=g.createHref(r);try{u.pushState(i,"",o)}catch(s){if(s instanceof DOMException&&"DataCloneError"===s.name)throw s;a.location.assign(o)}l&&d&&d({action:f,location:g.location,delta:1})},replace:function(e,t){f=c.Replace;var r=L(g.location,e,t);n&&n(r,e);var i=P(r,h=p()),o=g.createHref(r);u.replaceState(i,"",o),l&&d&&d({action:f,location:g.location,delta:0})},go:function(e){return u.go(e)}};return g}!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(N||(N={}));new Set(["lazy","caseSensitive","path","id","index","children"]);function F(e,t,n){void 0===n&&(n="/");var r=G(("string"===typeof t?R(t):t).pathname||"/",n);if(null==r)return null;var i=U(e);!function(e){e.sort((function(e,t){return e.score!==t.score?t.score-e.score:function(e,t){var n=e.length===t.length&&e.slice(0,-1).every((function(e,n){return e===t[n]}));return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((function(e){return e.childrenIndex})),t.routesMeta.map((function(e){return e.childrenIndex})))}))}(i);for(var o=null,a=0;null==o&&a0&&(A(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+s+'".'),U(e.children,t,l,s)),(null!=e.path||e.index)&&t.push({path:s,score:H(s,e.index),routesMeta:l})};return e.forEach((function(e,t){var n;if(""!==e.path&&null!=(n=e.path)&&n.includes("?")){var r,o=h(q(e.path));try{for(o.s();!(r=o.n()).done;){var a=r.value;i(e,t,a)}}catch(s){o.e(s)}finally{o.f()}}else i(e,t)})),t}function q(e){var t=e.split("/");if(0===t.length)return[];var n,r=o(n=t)||p(n)||s(n)||l(),i=r[0],a=r.slice(1),u=i.endsWith("?"),c=i.replace(/\?$/,"");if(0===a.length)return u?[c,""]:[c];var f=q(a.join("/")),d=[];return d.push.apply(d,m(f.map((function(e){return""===e?c:[c,e].join("/")})))),u&&d.push.apply(d,m(f)),d.map((function(t){return e.startsWith("/")&&""===t?"/":t}))}var z=/^:\w+$/,B=function(e){return"*"===e};function H(e,t){var n=e.split("/"),r=n.length;return n.some(B)&&(r+=-2),t&&(r+=2),n.filter((function(e){return!B(e)})).reduce((function(e,t){return e+(z.test(t)?3:""===t?1:10)}),r)}function V(e,t){for(var n=e.routesMeta,r={},i="/",o=[],a=0;a and the router will parse it for you.'}function Q(e){return e.filter((function(e,t){return 0===t||e.route.path&&e.route.path.length>0}))}function X(e,t,n,r){var i;void 0===r&&(r=!1),"string"===typeof e?i=R(e):(A(!(i=T({},e)).pathname||!i.pathname.includes("?"),$("?","pathname","search",i)),A(!i.pathname||!i.pathname.includes("#"),$("#","pathname","hash",i)),A(!i.search||!i.search.includes("#"),$("#","search","hash",i)));var o,a=""===e||""===i.pathname,s=a?"/":i.pathname;if(r||null==s)o=n;else{var l=t.length-1;if(s.startsWith("..")){for(var u=s.split("/");".."===u[0];)u.shift(),l-=1;i.pathname=u.join("/")}o=l>=0?t[l]:"/"}var c=function(e,t){void 0===t&&(t="/");var n="string"===typeof e?R(e):e,r=n.pathname,i=n.search,o=void 0===i?"":i,a=n.hash,s=void 0===a?"":a,l=r?r.startsWith("/")?r:function(e,t){var n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((function(e){".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(r,t):t;return{pathname:l,search:J(o),hash:ee(s)}}(i,o),f=s&&"/"!==s&&s.endsWith("/"),d=(a||"."===s)&&n.endsWith("/");return c.pathname.endsWith("/")||!f&&!d||(c.pathname+="/"),c}var Z=function(e){return e.join("/").replace(/\/\/+/g,"/")},K=function(e){return e.replace(/\/+$/,"").replace(/^\/*/,"/")},J=function(e){return e&&"?"!==e?e.startsWith("?")?e:"?"+e:""},ee=function(e){return e&&"#"!==e?e.startsWith("#")?e:"#"+e:""},te=function(e){w(n,e);var t=E(n);function n(){return v(this,n),t.apply(this,arguments)}return y(n)}(C(Error));function ne(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}var re=["post","put","patch","delete"],ie=(new Set(re),["get"].concat(re));new Set(ie),new Set([301,302,303,307,308]),new Set([307,308]);Symbol("deferred");function oe(){return oe=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||A(!1),a=a.slice(0,Math.min(a.length,l+1))}return a.reduceRight((function(e,i,o){var l=i.route.id?null==s?void 0:s[i.route.id]:null,u=null;r&&(u=i.route.errorElement||ke);var c=n.concat(a.slice(0,o+1)),f=function(){var n;return n=l?u:i.route.Component?t.createElement(i.route.Component,null):i.route.element?i.route.element:e,t.createElement(Ee,{match:i,routeContext:{outlet:e,matches:c,isDataRoute:null!=r},children:n})};return r&&(i.route.ErrorBoundary||i.route.errorElement||0===o)?t.createElement(Se,{location:r.location,revalidation:r.revalidation,component:u,error:l,children:f(),routeContext:{outlet:null,matches:c,isDataRoute:!0}}):f()}),null)}function Ce(e){var n=t.useContext(ae);return n||A(!1),n}function Te(e){var n=t.useContext(se);return n||A(!1),n}function Ne(e){var n=function(e){var n=t.useContext(fe);return n||A(!1),n}(),r=n.matches[n.matches.length-1];return r.route.id||A(!1),r.route.id}!function(e){e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate"}(xe||(xe={})),function(e){e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId"}(_e||(_e={}));var Me;r.startTransition;function Ae(e){var n=e.to,r=e.replace,i=e.state,o=e.relative;he()||A(!1);var a=t.useContext(fe).matches,s=pe().pathname,l=ve(),u=X(n,Q(a).map((function(e){return e.pathnameBase})),s,"path"===o),c=JSON.stringify(u);return t.useEffect((function(){return l(JSON.parse(c),{replace:r,state:i,relative:o})}),[l,c,o,r,i]),null}function je(e){A(!1)}function Pe(e){var n=e.basename,r=void 0===n?"/":n,i=e.children,o=void 0===i?null:i,a=e.location,s=e.navigationType,l=void 0===s?c.Pop:s,u=e.navigator,f=e.static,d=void 0!==f&&f;he()&&A(!1);var h=r.replace(/^\/*/,"/"),p=t.useMemo((function(){return{basename:h,navigator:u,static:d}}),[h,u,d]);"string"===typeof a&&(a=R(a));var m=a,v=m.pathname,g=void 0===v?"/":v,y=m.search,b=void 0===y?"":y,w=m.hash,x=void 0===w?"":w,_=m.state,k=void 0===_?null:_,S=m.key,E=void 0===S?"default":S,O=t.useMemo((function(){var e=G(g,h);return null==e?null:{location:{pathname:e,search:b,hash:x,state:k,key:E},navigationType:l}}),[h,g,b,x,k,E,l]);return null==O?null:t.createElement(ue.Provider,{value:p},t.createElement(ce.Provider,{children:o,value:O}))}function Le(e){var t=e.children,n=e.location;return be(Re(t),n)}!function(e){e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error"}(Me||(Me={}));var De=new Promise((function(){}));t.Component;function Re(e,n){void 0===n&&(n=[]);var r=[];return t.Children.forEach(e,(function(e,i){if(t.isValidElement(e)){var o=[].concat(m(n),[i]);if(e.type!==t.Fragment){e.type!==je&&A(!1),e.props.index&&e.props.children&&A(!1);var a={id:e.props.id||o.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,loader:e.props.loader,action:e.props.action,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(a.children=Re(e.props.children,o)),r.push(a)}else r.push.apply(r,Re(e.props.children,o))}})),r}function Ie(){return Ie=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(i[n]=e[n]);return i}function Ue(e){return void 0===e&&(e=""),new URLSearchParams("string"===typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((function(t,n){var r=e[n];return t.concat(Array.isArray(r)?r.map((function(e){return[n,e]})):[[n,r]])}),[]))}new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);var qe=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset"];var ze=r.startTransition;function Be(e){var n,r=e.basename,i=e.children,o=e.future,a=e.window,s=t.useRef();null==s.current&&(s.current=(void 0===(n={window:a,v5Compat:!0})&&(n={}),I((function(e,t){var n=e.location;return L("",{pathname:n.pathname,search:n.search,hash:n.hash},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){return"string"===typeof t?t:D(t)}),null,n)));var l=s.current,c=u(t.useState({action:l.action,location:l.location}),2),f=c[0],d=c[1],h=(o||{}).v7_startTransition,p=t.useCallback((function(e){h&&ze?ze((function(){return d(e)})):d(e)}),[d,h]);return t.useLayoutEffect((function(){return l.listen(p)}),[l,p]),t.createElement(Pe,{basename:r,children:i,location:f.location,navigationType:f.action,navigator:l})}var He="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement,Ve=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Ye=t.forwardRef((function(e,n){var r,i=e.onClick,o=e.relative,a=e.reloadDocument,s=e.replace,l=e.state,u=e.target,c=e.to,f=e.preventScrollReset,d=Fe(e,qe),h=t.useContext(ue).basename,p=!1;if("string"===typeof c&&Ve.test(c)&&(r=c,He))try{var m=new URL(window.location.href),v=c.startsWith("//")?new URL(m.protocol+c):new URL(c),g=G(v.pathname,h);v.origin===m.origin&&null!=g?c=g+v.search+v.hash:p=!0}catch(w){}var y=function(e,n){var r=(void 0===n?{}:n).relative;he()||A(!1);var i=t.useContext(ue),o=i.basename,a=i.navigator,s=ye(e,{relative:r}),l=s.hash,u=s.pathname,c=s.search,f=u;return"/"!==o&&(f="/"===u?o:Z([o,u])),a.createHref({pathname:f,search:c,hash:l})}(c,{relative:o}),b=function(e,n){var r=void 0===n?{}:n,i=r.target,o=r.replace,a=r.state,s=r.preventScrollReset,l=r.relative,u=ve(),c=pe(),f=ye(e,{relative:l});return t.useCallback((function(t){if(function(e,t){return 0===e.button&&(!t||"_self"===t)&&!function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)}(t,i)){t.preventDefault();var n=void 0!==o?o:D(c)===D(f);u(e,{replace:n,state:a,preventScrollReset:s,relative:l})}}),[c,u,f,o,a,i,e,s,l])}(c,{replace:s,state:l,target:u,preventScrollReset:f,relative:o});return t.createElement("a",Ie({},d,{href:r||y,onClick:p||a?i:function(e){i&&i(e),e.defaultPrevented||b(e)},ref:n,target:u}))}));var We,Ge;function $e(e){var n=t.useRef(Ue(e)),r=t.useRef(!1),i=pe(),o=t.useMemo((function(){return function(e,t){var n=Ue(e);if(t){var r,i=h(t.keys());try{var o=function(){var e=r.value;n.has(e)||t.getAll(e).forEach((function(t){n.append(e,t)}))};for(i.s();!(r=i.n()).done;)o()}catch(a){i.e(a)}finally{i.f()}}return n}(i.search,r.current?null:n.current)}),[i.search]),a=ve(),s=t.useCallback((function(e,t){var n=Ue("function"===typeof e?e(o):e);r.current=!0,a("?"+n,t)}),[a,o]);return[o,s]}(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher"})(We||(We={})),function(e){e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"}(Ge||(Ge={}));var Qe="CHT Technology Radar for Contributors",Xe=Qe,Ze="%TECHNOLOGY_NAME% | %APP_TITLE%";var Ke=function(e){return e.map((function(e){return"".concat(e.quadrant,"/").concat(e.name)}))};function Je(){return"undefined"!=typeof window&&(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)<1200}var et="/cht-tech-radar-contributors".replace(/\/$/,"")+"/";function tt(e){return et+e}function nt(e,t){return e.quadrants[t]||"-"}var rt=n(2586),it=(0,t.createContext)(void 0),ot=function(e){var t=e.messages,n=e.children;return(0,rt.jsx)(it.Provider,{value:t,children:n})},at=function(){return(0,t.useContext)(it)||{}};function st(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lt(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 ut(e){for(var t=1;t0})).join("&")}function Tt(e,t){var n,r,i;t=ut({decode:!0},t);var o=u(vt(e,"#"),2),a=o[0],s=o[1];return void 0===a&&(a=e),ut({url:null!==(n=null===(r=a)||void 0===r||null===(i=r.split("?"))||void 0===i?void 0:i[0])&&void 0!==n?n:"",query:Ot(Et(e),t)},t&&t.parseFragmentIdentifier&&s?{fragmentIdentifier:xt(s,t)}:{})}function Nt(e,t){t=ut(st({encode:!0,strict:!0},yt,!0),t);var n=kt(e.url).split("?")[0]||"",r=Ct(ut(ut({},Ot(Et(e.url),{sort:!1})),e.query),t);r&&(r="?".concat(r));var i=function(e){var t="",n=e.indexOf("#");return-1!==n&&(t=e.slice(n)),t}(e.url);if(e.fragmentIdentifier){var o=new URL(n);o.hash=e.fragmentIdentifier,i=t[yt]?o.hash:"#".concat(e.fragmentIdentifier)}return"".concat(n).concat(r).concat(i)}function Mt(e,t,n){var r=Tt(e,n=ut(st({parseFragmentIdentifier:!0},yt,!1),n)),i=r.url,o=r.query,a=r.fragmentIdentifier;return Nt({url:i,query:gt(o,t),fragmentIdentifier:a},n)}function At(e,t,n){var r=Array.isArray(t)?function(e){return!t.includes(e)}:function(e,n){return!t(e,n)};return Mt(e,r,n)}var jt,Pt,Lt=e,Dt={arrayFormat:"separator",arrayFormatSeparator:"|",parseBooleans:!0,parseNumbers:!0},Rt={arrayFormat:"separator",arrayFormatSeparator:"|",skipEmptyString:!0,skipNull:!0};function It(e,n){var r=n||{},i=r.replace,o=void 0===i||i,a=r.parseOptions,s=r.stringifyOptions,l=pe(),c=u($e(),2)[1],f=(0,t.useRef)("function"===typeof e?e():e||{}),d=(0,t.useMemo)((function(){return ut(ut({},f.current),Lt.parse(l.search,ut(ut({},Rt),a)))}),[l.search,a]);return[d,function(e){var t="function"===typeof e?e(d):e,n=Lt.stringify(ut(ut({},d),t),ut(ut({},Dt),s));c(n,{replace:o})}]}!function(e){e.chart="chart",e.columns="columns",e.both="both"}(jt||(jt={})),function(e){e.new="new",e.changed="changed",e.default="default"}(Pt||(Pt={}));var Ft=function(e){return e.filter((function(e){return e.featured}))},Ut=function(e){return e.reduce((function(e,t){return ut(ut({},e),{},st({},t.quadrant,qt(e[t.quadrant],t)))}),{})},qt=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return ut(ut({},e),{},st({},t.ring,Bt(e[t.ring],t)))},zt=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;return[].concat(m(e),[t])},Bt=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;return[].concat(m(e),[t])},Ht=function(e){return e.title.substr(0,1).toUpperCase()},Vt=n(8210),Yt=n.n(Vt),Wt={allowedTags:["b","i","em","strong","a","ul","ol","li"],allowedAttributes:{a:["href","target"]}},Gt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Wt;return{__html:Yt()(e,t)}};function $t(e){var t=e.logoContent,n=e.modifier,r=e.children;return(0,rt.jsxs)("div",{className:d()("branding",st({},"branding--".concat(n),n)),children:[(0,rt.jsx)("div",{className:"branding__logo",children:t}),(0,rt.jsx)("div",{className:"branding__content",children:r})]})}var Qt={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Xt=t.createContext&&t.createContext(Qt),Zt=function(){return Zt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n1&&void 0!==arguments[1]?arguments[1]:"MMMM YYYY";return _n(e).format(t)},Sn=function(e,t){return t.rings.includes(e)?["first","second","third","fourth"][t.rings.indexOf(e)]:e};function En(e){var t=e.onClick,n=e.big,r=e.type,i=e.config,o=e.children,a=t?"a":"span";return(0,rt.jsx)(a,{className:d()("badge","badge--".concat(Sn(r,i)),{"badge--big":!0===n}),onClick:t,href:"a"===a?"#":void 0,children:o})}function On(e){var t,n=e.item,r=e.short,i=void 0!==r&&r;if(n.flag!==Pt.default){var o=n.flag.toUpperCase(),a=(t=n.flag).charAt(0).toUpperCase()+t.slice(1);return!0===i&&(o=a[0]),(0,rt.jsx)("span",{className:"flag flag--".concat(n.flag),title:a,children:o})}return null}var Cn=function(e){var t=e.item,n=e.noLeadingBorder,r=void 0!==n&&n,i=e.active,o=void 0!==i&&i,a=e.style,s=void 0===a?{}:a,l=e.greyedOut,u=void 0!==l&&l;return(0,rt.jsxs)(ln,{className:d()("item",{"item--no-leading-border":r,"is-active":o}),pageName:"".concat(t.quadrant,"/").concat(t.name),style:s,children:[(0,rt.jsxs)("div",{className:d()("item__title",{"greyed-out":u}),children:[t.title,(0,rt.jsx)(On,{item:t})]}),t.info&&(0,rt.jsx)("div",{className:"item__info",children:t.info})]})},Tn=function(e){var t=e.children,n=e.items,r=e.activeItem,i=e.noLeadingBorder,o=e.headerStyle,a=void 0===o?{}:o,s=e.itemStyle,l=void 0===s?[]:s,u=Ft(n),c=function(e){return e.filter((function(e){return!e.featured}))}(n);return(0,rt.jsxs)("div",{className:"item-list",children:[(0,rt.jsx)("div",{className:"item-list__header",style:a,children:t}),(0,rt.jsxs)("div",{className:"item-list__list",children:[u.map((function(e,t){return(0,rt.jsx)(Cn,{item:e,noLeadingBorder:i,active:(null===r||void 0===r?void 0:r.name)===e.name,style:l[t],greyedOut:!1},e.name)})),c.map((function(e,t){return(0,rt.jsx)(Cn,{item:e,noLeadingBorder:i,active:(null===r||void 0===r?void 0:r.name)===e.name,style:l[u.length+t],greyedOut:!0},e.name)}))]})]})},Nn=function(e,t,n,r,i){var o=n[t][e]||[];return i?(0,rt.jsx)(Tn,{items:o,noLeadingBorder:!0,children:(0,rt.jsx)(En,{type:e,big:i,config:r,children:e})}):(0,rt.jsxs)("div",{className:"ring-list",children:[(0,rt.jsx)("div",{className:"ring-list__header",children:(0,rt.jsx)(En,{type:e,config:r,children:e})}),o.map((function(e){return(0,rt.jsx)("span",{className:"ring-list__item",children:(0,rt.jsxs)(ln,{className:"link",pageName:"".concat(e.quadrant,"/").concat(e.name),children:[e.title,(0,rt.jsx)(On,{item:e,short:!0})]})},e.name)}))]})};function Mn(e){var t=e.quadrantName,n=e.groups,r=e.config,i=e.big,o=void 0!==i&&i;return(0,rt.jsxs)("div",{className:"quadrant-section",children:[(0,rt.jsx)("div",{className:"quadrant-section__header",children:(0,rt.jsxs)("div",{className:"split",children:[(0,rt.jsx)("div",{className:"split__left",children:(0,rt.jsx)("h4",{className:"headline",children:nt(r,t)})}),!o&&(0,rt.jsx)("div",{className:"split__right",children:(0,rt.jsxs)(ln,{className:"icon-link",pageName:"".concat(t),children:[(0,rt.jsx)("span",{className:"icon icon--pie icon-link__icon"}),"Zoom In"]})})]})}),(0,rt.jsx)("div",{className:"quadrant-section__rings",children:r.rings.map((function(e){return function(e,t,n,r,i){return r.showEmptyRings||n[t]&&n[t][e]&&0!==n[t][e].length?(0,rt.jsx)("div",{className:"quadrant-section__ring",children:Nn(e,t,n,r,i)},e):null}(e,t,n,r,o)}))})]})}function An(e){var t=e.items,n=e.config,r=Ut(t);return(0,rt.jsx)("div",{className:"quadrant-grid",children:Object.keys(n.quadrants).map((function(e){return function(e,t,n){return(0,rt.jsx)("div",{className:"quadrant-grid__quadrant",children:(0,rt.jsx)(Mn,{quadrantName:e,groups:t,config:n})},e)}(e,r,n)}))})}function jn(e){return e}var Pn=1e-6;function Ln(e){return"translate("+e+",0)"}function Dn(e){return"translate(0,"+e+")"}function Rn(e){return function(t){return+e(t)}}function In(e,t){return t=Math.max(0,e.bandwidth()-2*t)/2,e.round()&&(t=Math.round(t)),function(n){return+e(n)+t}}function Fn(){return!this.__axis}function Un(e,t){var n=[],r=null,i=null,o=6,a=6,s=3,l="undefined"!==typeof window&&window.devicePixelRatio>1?0:.5,u=1===e||4===e?-1:1,c=4===e||2===e?"x":"y",f=1===e||3===e?Ln:Dn;function d(d){var h=null==r?t.ticks?t.ticks.apply(t,n):t.domain():r,p=null==i?t.tickFormat?t.tickFormat.apply(t,n):jn:i,m=Math.max(o,0)+s,v=t.range(),g=+v[0]+l,y=+v[v.length-1]+l,b=(t.bandwidth?In:Rn)(t.copy(),l),w=d.selection?d.selection():d,x=w.selectAll(".domain").data([null]),_=w.selectAll(".tick").data(h,t).order(),k=_.exit(),S=_.enter().append("g").attr("class","tick"),E=_.select("line"),O=_.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),_=_.merge(S),E=E.merge(S.append("line").attr("stroke","currentColor").attr(c+"2",u*o)),O=O.merge(S.append("text").attr("fill","currentColor").attr(c,u*m).attr("dy",1===e?"0em":3===e?"0.71em":"0.32em")),d!==w&&(x=x.transition(d),_=_.transition(d),E=E.transition(d),O=O.transition(d),k=k.transition(d).attr("opacity",Pn).attr("transform",(function(e){return isFinite(e=b(e))?f(e+l):this.getAttribute("transform")})),S.attr("opacity",Pn).attr("transform",(function(e){var t=this.parentNode.__axis;return f((t&&isFinite(t=t(e))?t:b(e))+l)}))),k.remove(),x.attr("d",4===e||2===e?a?"M"+u*a+","+g+"H"+l+"V"+y+"H"+u*a:"M"+l+","+g+"V"+y:a?"M"+g+","+u*a+"V"+l+"H"+y+"V"+u*a:"M"+g+","+l+"H"+y),_.attr("opacity",1).attr("transform",(function(e){return f(b(e)+l)})),E.attr(c+"2",u*o),O.attr(c,u*m).text(p),w.filter(Fn).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===e?"start":4===e?"end":"middle"),w.each((function(){this.__axis=b}))}return d.scale=function(e){return arguments.length?(t=e,d):t},d.ticks=function(){return n=Array.from(arguments),d},d.tickArguments=function(e){return arguments.length?(n=null==e?[]:Array.from(e),d):n.slice()},d.tickValues=function(e){return arguments.length?(r=null==e?null:Array.from(e),d):r&&r.slice()},d.tickFormat=function(e){return arguments.length?(i=e,d):i},d.tickSize=function(e){return arguments.length?(o=a=+e,d):o},d.tickSizeInner=function(e){return arguments.length?(o=+e,d):o},d.tickSizeOuter=function(e){return arguments.length?(a=+e,d):a},d.tickPadding=function(e){return arguments.length?(s=+e,d):s},d.offset=function(e){return arguments.length?(l=+e,d):l},d}function qn(){}function zn(e){return null==e?qn:function(){return this.querySelector(e)}}function Bn(e){return null==e?[]:Array.isArray(e)?e:Array.from(e)}function Hn(){return[]}function Vn(e){return null==e?Hn:function(){return this.querySelectorAll(e)}}function Yn(e){return function(){return this.matches(e)}}function Wn(e){return function(t){return t.matches(e)}}var Gn=Array.prototype.find;function $n(){return this.firstElementChild}var Qn=Array.prototype.filter;function Xn(){return Array.from(this.children)}function Zn(e){return new Array(e.length)}function Kn(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function Jn(e){return function(){return e}}function er(e,t,n,r,i,o){for(var a,s=0,l=t.length,u=o.length;st?1:e>=t?0:NaN}Kn.prototype={constructor:Kn,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var or="http://www.w3.org/1999/xhtml",ar={svg:"http://www.w3.org/2000/svg",xhtml:or,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function sr(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),ar.hasOwnProperty(t)?{space:ar[t],local:e}:e}function lr(e){return function(){this.removeAttribute(e)}}function ur(e){return function(){this.removeAttributeNS(e.space,e.local)}}function cr(e,t){return function(){this.setAttribute(e,t)}}function fr(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function dr(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function hr(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function pr(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function mr(e){return function(){this.style.removeProperty(e)}}function vr(e,t,n){return function(){this.style.setProperty(e,t,n)}}function gr(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function yr(e,t){return e.style.getPropertyValue(t)||pr(e).getComputedStyle(e,null).getPropertyValue(t)}function br(e){return function(){delete this[e]}}function wr(e,t){return function(){this[e]=t}}function xr(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function _r(e){return e.trim().split(/^|\s+/)}function kr(e){return e.classList||new Sr(e)}function Sr(e){this._node=e,this._names=_r(e.getAttribute("class")||"")}function Er(e,t){for(var n=kr(e),r=-1,i=t.length;++r=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}function Wr(e){return function(){var t=this.__on;if(t){for(var n,r=0,i=-1,o=t.length;r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"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),_(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;_(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:E(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),c}},e}Sr.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var Kr=Zr().mark(Jr);function Jr(){var e,t,n,r,i,o,a;return Zr().wrap((function(s){for(;;)switch(s.prev=s.next){case 0:e=this._groups,t=0,n=e.length;case 1:if(!(t=x&&(x=w+1);!(b=v[x])&&++x=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=ir);for(var n=this._groups,r=n.length,i=new Array(r),o=0;o1?this.each((null==t?mr:"function"===typeof t?gr:vr)(e,t,null==n?"":n)):yr(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?br:"function"===typeof t?xr:wr)(e,t)):this.node()[e]},classed:function(e,t){var n=_r(e+"");if(arguments.length<2){for(var r=kr(this.node()),i=-1,o=n.length;++i=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:n}}))}function li(e,t){for(var n,r=0,i=e.length;r0)for(var n,r,i=new Array(n),o=0;o=0&&t._call.call(void 0,e),t=t._next;--hi}()}finally{hi=0,function(){var e,t,n=ci,r=1/0;for(;n;)n._call?(r>n._time&&(r=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:ci=t);fi=e,Ci(r)}(),gi=0}}function Oi(){var e=bi.now(),t=e-vi;t>1e3&&(yi-=t,vi=e)}function Ci(e){hi||(pi&&(pi=clearTimeout(pi)),e-gi>24?(e<1/0&&(pi=setTimeout(Ei,e-bi.now()-yi)),mi&&(mi=clearInterval(mi))):(mi||(vi=bi.now(),mi=setInterval(Oi,1e3)),hi=1,wi(Ei)))}function Ti(e,t,n){var r=new ki;return t=null==t?0:+t,r.restart((function(n){r.stop(),e(n+t)}),t,n),r}ki.prototype=Si.prototype={constructor:ki,restart:function(e,t,n){if("function"!==typeof e)throw new TypeError("callback is not a function");n=(null==n?xi():+n)+(null==t?0:+t),this._next||fi===this||(fi?fi._next=this:ci=this,fi=this),this._call=e,this._time=n,Ci()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ci())}};var Ni=di("start","end","cancel","interrupt"),Mi=[];function Ai(e,t,n,r,i,o){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var r,i=e.__transition;function o(e){n.state=1,n.timer.restart(a,n.delay,n.time),n.delay<=e&&a(e-n.delay)}function a(o){var u,c,f,d;if(1!==n.state)return l();for(u in i)if((d=i[u]).name===n.name){if(3===d.state)return Ti(a);4===d.state?(d.state=6,d.timer.stop(),d.on.call("interrupt",e,e.__data__,d.index,d.group),delete i[u]):+u0)throw new Error("too late; already scheduled");return n}function Pi(e,t){var n=Li(e,t);if(n.state>3)throw new Error("too late; already running");return n}function Li(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Di(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var Ri,Ii=180/Math.PI,Fi={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ui(e,t,n,r,i,o){var a,s,l;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,l/=s),e*r180?t+=360:t-e>180&&(e+=360),o.push({i:n.push(i(n)+"rotate(",null,r)-2,x:Di(e,t)})):t&&n.push(i(n)+"rotate("+t+r)}(o.rotate,a.rotate,s,l),function(e,t,n,o){e!==t?o.push({i:n.push(i(n)+"skewX(",null,r)-2,x:Di(e,t)}):t&&n.push(i(n)+"skewX("+t+r)}(o.skewX,a.skewX,s,l),function(e,t,n,r,o,a){if(e!==n||t!==r){var s=o.push(i(o)+"scale(",null,",",null,")");a.push({i:s-4,x:Di(e,n)},{i:s-2,x:Di(t,r)})}else 1===n&&1===r||o.push(i(o)+"scale("+n+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,l),o=a=null,function(e){for(var t,n=-1,r=l.length;++n>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?ho(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?ho(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=to.exec(e))?new vo(t[1],t[2],t[3],1):(t=no.exec(e))?new vo(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=ro.exec(e))?ho(t[1],t[2],t[3],t[4]):(t=io.exec(e))?ho(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=oo.exec(e))?_o(t[1],t[2]/100,t[3]/100,1):(t=ao.exec(e))?_o(t[1],t[2]/100,t[3]/100,t[4]):so.hasOwnProperty(e)?fo(so[e]):"transparent"===e?new vo(NaN,NaN,NaN,0):null}function fo(e){return new vo(e>>16&255,e>>8&255,255&e,1)}function ho(e,t,n,r){return r<=0&&(e=t=n=NaN),new vo(e,t,n,r)}function po(e){return e instanceof $i||(e=co(e)),e?new vo((e=e.rgb()).r,e.g,e.b,e.opacity):new vo}function mo(e,t,n,r){return 1===arguments.length?po(e):new vo(e,t,n,null==r?1:r)}function vo(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function go(){return"#".concat(xo(this.r)).concat(xo(this.g)).concat(xo(this.b))}function yo(){var e=bo(this.opacity);return"".concat(1===e?"rgb(":"rgba(").concat(wo(this.r),", ").concat(wo(this.g),", ").concat(wo(this.b)).concat(1===e?")":", ".concat(e,")"))}function bo(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function wo(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function xo(e){return((e=wo(e))<16?"0":"")+e.toString(16)}function _o(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new So(e,t,n,r)}function ko(e){if(e instanceof So)return new So(e.h,e.s,e.l,e.opacity);if(e instanceof $i||(e=co(e)),!e)return new So;if(e instanceof So)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,s=o-i,l=(o+i)/2;return s?(a=t===o?(n-r)/s+6*(n0&&l<1?0:a,new So(a,s,l,e.opacity)}function So(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function Eo(e){return(e=(e||0)%360)<0?e+360:e}function Oo(e){return Math.max(0,Math.min(1,e||0))}function Co(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function To(e,t,n,r,i){var o=e*e,a=o*e;return((1-3*e+3*o-a)*t+(4-6*o+3*a)*n+(1+3*e+3*o-3*a)*r+a*i)/6}Wi($i,co,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:lo,formatHex:lo,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return ko(this).formatHsl()},formatRgb:uo,toString:uo}),Wi(vo,mo,Gi($i,{brighter:function(e){return e=null==e?Xi:Math.pow(Xi,e),new vo(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=null==e?Qi:Math.pow(Qi,e),new vo(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},clamp:function(){return new vo(wo(this.r),wo(this.g),wo(this.b),bo(this.opacity))},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:go,formatHex:go,formatHex8:function(){return"#".concat(xo(this.r)).concat(xo(this.g)).concat(xo(this.b)).concat(xo(255*(isNaN(this.opacity)?1:this.opacity)))},formatRgb:yo,toString:yo})),Wi(So,(function(e,t,n,r){return 1===arguments.length?ko(e):new So(e,t,n,null==r?1:r)}),Gi($i,{brighter:function(e){return e=null==e?Xi:Math.pow(Xi,e),new So(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?Qi:Math.pow(Qi,e),new So(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new vo(Co(e>=240?e-240:e+120,i,r),Co(e,i,r),Co(e<120?e+240:e-120,i,r),this.opacity)},clamp:function(){return new So(Eo(this.h),Oo(this.s),Oo(this.l),bo(this.opacity))},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=bo(this.opacity);return"".concat(1===e?"hsl(":"hsla(").concat(Eo(this.h),", ").concat(100*Oo(this.s),"%, ").concat(100*Oo(this.l),"%").concat(1===e?")":", ".concat(e,")"))}}));var No=function(e){return function(){return e}};function Mo(e,t){return function(n){return e+n*t}}function Ao(e){return 1===(e=+e)?jo:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):No(isNaN(t)?n:t)}}function jo(e,t){var n=t-e;return n?Mo(e,n):No(isNaN(e)?t:e)}var Po=function e(t){var n=Ao(t);function r(e,t){var r=n((e=mo(e)).r,(t=mo(t)).r),i=n(e.g,t.g),o=n(e.b,t.b),a=jo(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=o(t),e.opacity=a(t),e+""}}return r.gamma=e,r}(1);function Lo(e){return function(t){var n,r,i=t.length,o=new Array(i),a=new Array(i),s=new Array(i);for(n=0;n=1?(n=1,t-1):Math.floor(n*t),i=e[r],o=e[r+1],a=r>0?e[r-1]:2*i-o,s=ro&&(i=t.slice(o,i),s[a]?s[a]+=i:s[++a]=i),(n=n[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,l.push({i:a,x:Di(n,r)})),o=Ro.lastIndex;return o=0&&(e=e.slice(0,t)),!e||"start"===e}))}(t)?ji:Pi;return function(){var a=o(this,e),s=a.on;s!==r&&(i=(r=s).copy()).on(t,n),a.on=i}}var ta=ri.prototype.constructor;function na(e){return function(){this.style.removeProperty(e)}}function ra(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function ia(e,t,n){var r,i;function o(){var o=t.apply(this,arguments);return o!==i&&(r=(i=o)&&ra(e,o,n)),r}return o._value=t,o}function oa(e){return function(t){this.textContent=e.call(this,t)}}function aa(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&oa(r)),t}return r._value=e,r}var sa=0;function la(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function ua(){return++sa}var ca=ri.prototype;la.prototype=function(e){return ri().transition(e)}.prototype=st({constructor:la,select:function(e){var t=this._name,n=this._id;"function"!==typeof e&&(e=zn(e));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete o[i]):a=!1;a&&delete e.__transition}}(this,e)}))},ri.prototype.transition=function(e){var t,n;e instanceof la?(t=e._id,e=e._name):(t=ua(),(n=fa).time=xi(),e=null==e?null:e+"");for(var r=this._groups,i=r.length,o=0;o=va?10:l>=ga?5:l>=ya?2:1;return s<0?(o=Math.pow(10,-s)/u,(r=Math.round(e*o))/ot&&--i,o=-o):(o=Math.pow(10,s)*u,(r=Math.round(e/o))*ot&&--i),it?1:e>=t?0:NaN}function _a(e,t){return null==e||null==t?NaN:te?1:t>=e?0:NaN}function ka(e){var t,n,r;function i(e,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length;if(i>>1;n(e[a],r)<0?i=a+1:o=a}while(i2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length,a=i(e,t,n,o-1);return a>n&&r(e[a-1],t)>-r(e[a],t)?a-1:a},right:function(e,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length;if(i>>1;n(e[a],r)<=0?i=a+1:o=a}while(it&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}(a[0],a[e-1])),r=e>2?Ua:Fa,i=o=null,f}function f(t){return null==t||isNaN(t=+t)?n:(i||(i=r(a.map(e),s,l)))(e(u(t)))}return f.invert=function(n){return u(t((o||(o=r(s,a.map(e),Di)))(n)))},f.domain=function(e){return arguments.length?(a=Array.from(e,La),c()):a.slice()},f.range=function(e){return arguments.length?(s=Array.from(e),c()):s.slice()},f.rangeRound=function(e){return s=Array.from(e),l=Pa,c()},f.clamp=function(e){return arguments.length?(u=!!e||Ra,c()):u!==Ra},f.interpolate=function(e){return arguments.length?(l=e,c()):l},f.unknown=function(e){return arguments.length?(n=e,f):n},function(n,r){return e=n,t=r,c()}}function Ba(){return za()(Ra,Ra)}function Ha(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}var Va,Ya=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Wa(e){if(!(t=Ya.exec(e)))throw new Error("invalid format: "+e);var t;return new Ga({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function Ga(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function $a(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Qa(e){return(e=$a(Math.abs(e)))?e[1]:NaN}function Xa(e,t){var n=$a(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}Wa.prototype=Ga.prototype,Ga.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Za={"%":function(e,t){return(100*e).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return Xa(100*e,t)},r:Xa,s:function(e,t){var n=$a(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(Va=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+$a(e,Math.max(0,t+o-1))[0]},X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};function Ka(e){return e}var Ja,es,ts,ns=Array.prototype.map,rs=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function is(e){var t,n,r=void 0===e.grouping||void 0===e.thousands?Ka:(t=ns.call(e.grouping,Number),n=e.thousands+"",function(e,r){for(var i=e.length,o=[],a=0,s=t[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),o.push(e.substring(i-=s,i+s)),!((l+=s+1)>r));)s=t[a=(a+1)%t.length];return o.reverse().join(n)}),i=void 0===e.currency?"":e.currency[0]+"",o=void 0===e.currency?"":e.currency[1]+"",a=void 0===e.decimal?".":e.decimal+"",s=void 0===e.numerals?Ka:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(ns.call(e.numerals,String)),l=void 0===e.percent?"%":e.percent+"",u=void 0===e.minus?"\u2212":e.minus+"",c=void 0===e.nan?"NaN":e.nan+"";function f(e){var t=(e=Wa(e)).fill,n=e.align,f=e.sign,d=e.symbol,h=e.zero,p=e.width,m=e.comma,v=e.precision,g=e.trim,y=e.type;"n"===y?(m=!0,y="g"):Za[y]||(void 0===v&&(v=12),g=!0,y="g"),(h||"0"===t&&"="===n)&&(h=!0,t="0",n="=");var b="$"===d?i:"#"===d&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",w="$"===d?o:/[%p]/.test(y)?l:"",x=Za[y],_=/[defgprs%]/.test(y);function k(e){var i,o,l,d=b,k=w;if("c"===y)k=x(e)+k,e="";else{var S=(e=+e)<0||1/e<0;if(e=isNaN(e)?c:x(Math.abs(e),v),g&&(e=function(e){e:for(var t,n=e.length,r=1,i=-1;r0&&(i=0)}return i>0?e.slice(0,i)+e.slice(t+1):e}(e)),S&&0===+e&&"+"!==f&&(S=!1),d=(S?"("===f?f:u:"-"===f||"("===f?"":f)+d,k=("s"===y?rs[8+Va/3]:"")+k+(S&&"("===f?")":""),_)for(i=-1,o=e.length;++i(l=e.charCodeAt(i))||l>57){k=(46===l?a+e.slice(i+1):e.slice(i))+k,e=e.slice(0,i);break}}m&&!h&&(e=r(e,1/0));var E=d.length+e.length+k.length,O=E>1)+d+e+k+O.slice(E);break;default:e=O+d+e+k}return s(e)}return v=void 0===v?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,v)):Math.max(0,Math.min(20,v)),k.toString=function(){return e+""},k}return{format:f,formatPrefix:function(e,t){var n=f(((e=Wa(e)).type="f",e)),r=3*Math.max(-8,Math.min(8,Math.floor(Qa(t)/3))),i=Math.pow(10,-r),o=rs[8+r/3];return function(e){return n(i*e)+o}}}}function os(e,t,n,r){var i,o=function(e,t,n){n=+n;var r=(t=+t)<(e=+e),i=r?wa(t,e,n):wa(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}(e,t,n);switch((r=Wa(null==r?",f":r)).type){case"s":var a=Math.max(Math.abs(e),Math.abs(t));return null!=r.precision||isNaN(i=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Qa(t)/3)))-Qa(Math.abs(e)))}(o,a))||(r.precision=i),ts(r,a);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=function(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Qa(t)-Qa(e))+1}(o,Math.max(Math.abs(e),Math.abs(t))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=function(e){return Math.max(0,-Qa(Math.abs(e)))}(o))||(r.precision=i-2*("%"===r.type))}return es(r)}function as(e){var t=e.domain;return e.ticks=function(e){var n=t();return function(e,t,n){if(!((n=+n)>0))return[];if((e=+e)===(t=+t))return[e];var r=t=o))return[];var l=a-o+1,c=new Array(l);if(r)if(s<0)for(var f=0;f0;){if((i=wa(l,u,n))===r)return o[a]=l,o[s]=u,t(o);if(i>0)l=Math.floor(l/i)*i,u=Math.ceil(u/i)*i;else{if(!(i<0))break;l=Math.ceil(l*i)/i,u=Math.floor(u*i)/i}r=i}return e},e}function ss(){var e=Ba();return e.copy=function(){return qa(e,ss())},Ha.apply(e,arguments),as(e)}function ls(e){return"string"===typeof e?new ti([[document.querySelector(e)]],[document.documentElement]):new ti([[e]],ei)}function us(e){return function(){return e}}Ja=is({thousands:",",grouping:[3],currency:["$",""]}),es=Ja.format,ts=Ja.formatPrefix;var cs,fs,ds,hs,ps,ms,vs,gs,ys,bs,ws,xs,_s,ks,Ss=Math.abs,Es=Math.atan2,Os=Math.cos,Cs=Math.max,Ts=Math.min,Ns=Math.sin,Ms=Math.sqrt,As=1e-12,js=Math.PI,Ps=js/2,Ls=2*js;function Ds(e){return e>1?0:e<-1?js:Math.acos(e)}function Rs(e){return e>=1?Ps:e<=-1?-Ps:Math.asin(e)}function Is(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Fs=Math.PI,Us=2*Fs,qs=1e-6,zs=Us-qs;function Bs(e){this._+=e[0];for(var t=1,n=e.length;t=0))throw new Error("invalid digits: ".concat(e));if(t>15)return Bs;var n=Math.pow(10,t);return function(e){this._+=e[0];for(var t=1,r=e.length;tqs)if(Math.abs(c*s-l*u)>qs&&i){var d=n-o,h=r-a,p=s*s+l*l,m=d*d+h*h,v=Math.sqrt(p),g=Math.sqrt(f),y=i*Math.tan((Fs-Math.acos((p+f-m)/(2*v*g)))/2),b=y/g,w=y/v;Math.abs(b-1)>qs&&this._append(gs||(gs=Is(["L",",",""])),e+b*u,t+b*c),this._append(ys||(ys=Is(["A",",",",0,0,",",",",",""])),i,i,+(c*d>u*h),this._x1=e+w*s,this._y1=t+w*l)}else this._append(vs||(vs=Is(["L",",",""])),this._x1=e,this._y1=t);else;}},{key:"arc",value:function(e,t,n,r,i,o){if(e=+e,t=+t,o=!!o,(n=+n)<0)throw new Error("negative radius: ".concat(n));var a=n*Math.cos(r),s=n*Math.sin(r),l=e+a,u=t+s,c=1^o,f=o?r-i:i-r;null===this._x1?this._append(bs||(bs=Is(["M",",",""])),l,u):(Math.abs(this._x1-l)>qs||Math.abs(this._y1-u)>qs)&&this._append(ws||(ws=Is(["L",",",""])),l,u),n&&(f<0&&(f=f%Us+Us),f>zs?this._append(xs||(xs=Is(["A",",",",0,1,",",",",","A",",",",0,1,",",",",",""])),n,n,c,e-a,t-s,n,n,c,this._x1=l,this._y1=u):f>qs&&this._append(_s||(_s=Is(["A",",",",0,",",",",",",",""])),n,n,+(f>=Fs),c,this._x1=e+n*Math.cos(i),this._y1=t+n*Math.sin(i)))}},{key:"rect",value:function(e,t,n,r){this._append(ks||(ks=Is(["M",",","h","v","h","Z"])),this._x0=this._x1=+e,this._y0=this._y1=+t,n=+n,+r,-n)}},{key:"toString",value:function(){return this._}}]),e}();function Vs(e){return e.innerRadius}function Ys(e){return e.outerRadius}function Ws(e){return e.startAngle}function Gs(e){return e.endAngle}function $s(e){return e&&e.padAngle}function Qs(e,t,n,r,i,o,a,s){var l=n-e,u=r-t,c=a-i,f=s-o,d=f*l-c*u;if(!(d*dM*M+A*A&&(S=O,E=C),{cx:S,cy:E,x01:-c,y01:-f,x11:S*(i/x-1),y11:E*(i/x-1)}}function Zs(){var e=Vs,t=Ys,n=us(0),r=null,i=Ws,o=Gs,a=$s,s=null,l=function(e){var t=3;return e.digits=function(n){if(!arguments.length)return t;if(null==n)t=null;else{var r=Math.floor(n);if(!(r>=0))throw new RangeError("invalid digits: ".concat(n));t=r}return e},function(){return new Hs(t)}}(u);function u(){var u,c,f=+e.apply(this,arguments),d=+t.apply(this,arguments),h=i.apply(this,arguments)-Ps,p=o.apply(this,arguments)-Ps,m=Ss(p-h),v=p>h;if(s||(s=u=l()),dAs)if(m>Ls-As)s.moveTo(d*Os(h),d*Ns(h)),s.arc(0,0,d,h,p,!v),f>As&&(s.moveTo(f*Os(p),f*Ns(p)),s.arc(0,0,f,p,h,v));else{var g,y,b=h,w=p,x=h,_=p,k=m,S=m,E=a.apply(this,arguments)/2,O=E>As&&(r?+r.apply(this,arguments):Ms(f*f+d*d)),C=Ts(Ss(d-f)/2,+n.apply(this,arguments)),T=C,N=C;if(O>As){var M=Rs(O/f*Ns(E)),A=Rs(O/d*Ns(E));(k-=2*M)>As?(x+=M*=v?1:-1,_-=M):(k=0,x=_=(h+p)/2),(S-=2*A)>As?(b+=A*=v?1:-1,w-=A):(S=0,b=w=(h+p)/2)}var j=d*Os(b),P=d*Ns(b),L=f*Os(_),D=f*Ns(_);if(C>As){var R,I=d*Os(w),F=d*Ns(w),U=f*Os(x),q=f*Ns(x);if(mAs?N>As?(g=Xs(U,q,j,P,d,N,v),y=Xs(I,F,L,D,d,N,v),s.moveTo(g.cx+g.x01,g.cy+g.y01),NAs&&k>As?T>As?(g=Xs(L,D,I,F,f,-T,v),y=Xs(j,P,U,q,f,-T,v),s.lineTo(g.cx+g.x01,g.cy+g.y01),Te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}var bl="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:"undefined"!==typeof self?self:{},wl=function(e){return e&&e.Math==Math&&e},xl=wl("object"==typeof globalThis&&globalThis)||wl("object"==typeof window&&window)||wl("object"==typeof self&&self)||wl("object"==typeof bl&&bl)||function(){return this}()||Function("return this")(),_l={},kl=function(e){try{return!!e()}catch(t){return!0}},Sl=!kl((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),El=!kl((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})),Ol=El,Cl=Function.prototype.call,Tl=Ol?Cl.bind(Cl):function(){return Cl.apply(Cl,arguments)},Nl={},Ml={}.propertyIsEnumerable,Al=Object.getOwnPropertyDescriptor,jl=Al&&!Ml.call({1:2},1);Nl.f=jl?function(e){var t=Al(this,e);return!!t&&t.enumerable}:Ml;var Pl,Ll,Dl=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},Rl=El,Il=Function.prototype,Fl=Il.call,Ul=Rl&&Il.bind.bind(Fl,Fl),ql=function(e){return Rl?Ul(e):function(){return Fl.apply(e,arguments)}},zl=ql,Bl=zl({}.toString),Hl=zl("".slice),Vl=function(e){return Hl(Bl(e),8,-1)},Yl=Vl,Wl=ql,Gl=function(e){if("Function"===Yl(e))return Wl(e)},$l=kl,Ql=Vl,Xl=Object,Zl=Gl("".split),Kl=$l((function(){return!Xl("z").propertyIsEnumerable(0)}))?function(e){return"String"==Ql(e)?Zl(e,""):Xl(e)}:Xl,Jl=function(e){return null===e||void 0===e},eu=Jl,tu=TypeError,nu=function(e){if(eu(e))throw tu("Can't call method on "+e);return e},ru=Kl,iu=nu,ou=function(e){return ru(iu(e))},au="object"==typeof document&&document.all,su={all:au,IS_HTMLDDA:"undefined"==typeof au&&void 0!==au},lu=su.all,uu=su.IS_HTMLDDA?function(e){return"function"==typeof e||e===lu}:function(e){return"function"==typeof e},cu=uu,fu=su.all,du=su.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:cu(e)||e===fu}:function(e){return"object"==typeof e?null!==e:cu(e)},hu=xl,pu=uu,mu=function(e){return pu(e)?e:void 0},vu=function(e,t){return arguments.length<2?mu(hu[e]):hu[e]&&hu[e][t]},gu=Gl({}.isPrototypeOf),yu=xl,bu=vu("navigator","userAgent")||"",wu=yu.process,xu=yu.Deno,_u=wu&&wu.versions||xu&&xu.version,ku=_u&&_u.v8;ku&&(Ll=(Pl=ku.split("."))[0]>0&&Pl[0]<4?1:+(Pl[0]+Pl[1])),!Ll&&bu&&(!(Pl=bu.match(/Edge\/(\d+)/))||Pl[1]>=74)&&(Pl=bu.match(/Chrome\/(\d+)/))&&(Ll=+Pl[1]);var Su=Ll,Eu=kl,Ou=!!Object.getOwnPropertySymbols&&!Eu((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&Su&&Su<41})),Cu=Ou&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Tu=vu,Nu=uu,Mu=gu,Au=Object,ju=Cu?function(e){return"symbol"==typeof e}:function(e){var t=Tu("Symbol");return Nu(t)&&Mu(t.prototype,Au(e))},Pu=String,Lu=uu,Du=function(e){try{return Pu(e)}catch(t){return"Object"}},Ru=TypeError,Iu=function(e){if(Lu(e))return e;throw Ru(Du(e)+" is not a function")},Fu=Iu,Uu=Jl,qu=Tl,zu=uu,Bu=du,Hu=TypeError,Vu={exports:{}},Yu=xl,Wu=Object.defineProperty,Gu=function(e,t){try{Wu(Yu,e,{value:t,configurable:!0,writable:!0})}catch(n){Yu[e]=t}return t},$u=Gu,Qu="__core-js_shared__",Xu=xl[Qu]||$u(Qu,{}),Zu=Xu;(Vu.exports=function(e,t){return Zu[e]||(Zu[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.25.5",mode:"global",copyright:"\xa9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.25.5/LICENSE",source:"https://github.com/zloirock/core-js"});var Ku=nu,Ju=Object,ec=function(e){return Ju(Ku(e))},tc=ec,nc=Gl({}.hasOwnProperty),rc=Object.hasOwn||function(e,t){return nc(tc(e),t)},ic=Gl,oc=0,ac=Math.random(),sc=ic(1..toString),lc=function(e){return"Symbol("+(void 0===e?"":e)+")_"+sc(++oc+ac,36)},uc=xl,cc=Vu.exports,fc=rc,dc=lc,hc=Ou,pc=Cu,mc=cc("wks"),vc=uc.Symbol,gc=vc&&vc.for,yc=pc?vc:vc&&vc.withoutSetter||dc,bc=function(e){if(!fc(mc,e)||!hc&&"string"!=typeof mc[e]){var t="Symbol."+e;hc&&fc(vc,e)?mc[e]=vc[e]:mc[e]=pc&&gc?gc(t):yc(t)}return mc[e]},wc=Tl,xc=du,_c=ju,kc=function(e,t){var n=e[t];return Uu(n)?void 0:Fu(n)},Sc=function(e,t){var n,r;if("string"===t&&zu(n=e.toString)&&!Bu(r=qu(n,e)))return r;if(zu(n=e.valueOf)&&!Bu(r=qu(n,e)))return r;if("string"!==t&&zu(n=e.toString)&&!Bu(r=qu(n,e)))return r;throw Hu("Can't convert object to primitive value")},Ec=TypeError,Oc=bc("toPrimitive"),Cc=function(e,t){if(!xc(e)||_c(e))return e;var n,r=kc(e,Oc);if(r){if(void 0===t&&(t="default"),n=wc(r,e,t),!xc(n)||_c(n))return n;throw Ec("Can't convert object to primitive value")}return void 0===t&&(t="number"),Sc(e,t)},Tc=ju,Nc=function(e){var t=Cc(e,"string");return Tc(t)?t:t+""},Mc=du,Ac=xl.document,jc=Mc(Ac)&&Mc(Ac.createElement),Pc=function(e){return jc?Ac.createElement(e):{}},Lc=Pc,Dc=!Sl&&!kl((function(){return 7!=Object.defineProperty(Lc("div"),"a",{get:function(){return 7}}).a})),Rc=Sl,Ic=Tl,Fc=Nl,Uc=Dl,qc=ou,zc=Nc,Bc=rc,Hc=Dc,Vc=Object.getOwnPropertyDescriptor;_l.f=Rc?Vc:function(e,t){if(e=qc(e),t=zc(t),Hc)try{return Vc(e,t)}catch(n){}if(Bc(e,t))return Uc(!Ic(Fc.f,e,t),e[t])};var Yc={},Wc=Sl&&kl((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),Gc=du,$c=String,Qc=TypeError,Xc=function(e){if(Gc(e))return e;throw Qc($c(e)+" is not an object")},Zc=Sl,Kc=Dc,Jc=Wc,ef=Xc,tf=Nc,nf=TypeError,rf=Object.defineProperty,of=Object.getOwnPropertyDescriptor,af="enumerable",sf="configurable",lf="writable";Yc.f=Zc?Jc?function(e,t,n){if(ef(e),t=tf(t),ef(n),"function"===typeof e&&"prototype"===t&&"value"in n&&lf in n&&!n.writable){var r=of(e,t);r&&r.writable&&(e[t]=n.value,n={configurable:sf in n?n.configurable:r.configurable,enumerable:af in n?n.enumerable:r.enumerable,writable:!1})}return rf(e,t,n)}:rf:function(e,t,n){if(ef(e),t=tf(t),ef(n),Kc)try{return rf(e,t,n)}catch(r){}if("get"in n||"set"in n)throw nf("Accessors not supported");return"value"in n&&(e[t]=n.value),e};var uf=Yc,cf=Dl,ff=Sl?function(e,t,n){return uf.f(e,t,cf(1,n))}:function(e,t,n){return e[t]=n,e},df={exports:{}},hf=Sl,pf=rc,mf=Function.prototype,vf=hf&&Object.getOwnPropertyDescriptor,gf=pf(mf,"name"),yf={EXISTS:gf,PROPER:gf&&"something"===function(){}.name,CONFIGURABLE:gf&&(!hf||hf&&vf(mf,"name").configurable)},bf=uu,wf=Xu,xf=Gl(Function.toString);bf(wf.inspectSource)||(wf.inspectSource=function(e){return xf(e)});var _f,kf,Sf,Ef=wf.inspectSource,Of=uu,Cf=xl.WeakMap,Tf=Of(Cf)&&/native code/.test(String(Cf)),Nf=Vu.exports,Mf=lc,Af=Nf("keys"),jf=function(e){return Af[e]||(Af[e]=Mf(e))},Pf={},Lf=Tf,Df=xl,Rf=du,If=ff,Ff=rc,Uf=Xu,qf=jf,zf=Pf,Bf="Object already initialized",Hf=Df.TypeError,Vf=Df.WeakMap;if(Lf||Uf.state){var Yf=Uf.state||(Uf.state=new Vf);Yf.get=Yf.get,Yf.has=Yf.has,Yf.set=Yf.set,_f=function(e,t){if(Yf.has(e))throw Hf(Bf);return t.facade=e,Yf.set(e,t),t},kf=function(e){return Yf.get(e)||{}},Sf=function(e){return Yf.has(e)}}else{var Wf=qf("state");zf[Wf]=!0,_f=function(e,t){if(Ff(e,Wf))throw Hf(Bf);return t.facade=e,If(e,Wf,t),t},kf=function(e){return Ff(e,Wf)?e[Wf]:{}},Sf=function(e){return Ff(e,Wf)}}var Gf={set:_f,get:kf,has:Sf,enforce:function(e){return Sf(e)?kf(e):_f(e,{})},getterFor:function(e){return function(t){var n;if(!Rf(t)||(n=kf(t)).type!==e)throw Hf("Incompatible receiver, "+e+" required");return n}}},$f=kl,Qf=uu,Xf=rc,Zf=Sl,Kf=yf.CONFIGURABLE,Jf=Ef,ed=Gf.enforce,td=Gf.get,nd=Object.defineProperty,rd=Zf&&!$f((function(){return 8!==nd((function(){}),"length",{value:8}).length})),id=String(String).split("String"),od=df.exports=function(e,t,n){"Symbol("===String(t).slice(0,7)&&(t="["+String(t).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!Xf(e,"name")||Kf&&e.name!==t)&&(Zf?nd(e,"name",{value:t,configurable:!0}):e.name=t),rd&&n&&Xf(n,"arity")&&e.length!==n.arity&&nd(e,"length",{value:n.arity});try{n&&Xf(n,"constructor")&&n.constructor?Zf&&nd(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(i){}var r=ed(e);return Xf(r,"source")||(r.source=id.join("string"==typeof t?t:"")),e};Function.prototype.toString=od((function(){return Qf(this)&&td(this).source||Jf(this)}),"toString");var ad=uu,sd=Yc,ld=df.exports,ud=Gu,cd={},fd=Math.ceil,dd=Math.floor,hd=Math.trunc||function(e){var t=+e;return(t>0?dd:fd)(t)},pd=function(e){var t=+e;return t!==t||0===t?0:hd(t)},md=pd,vd=Math.max,gd=Math.min,yd=pd,bd=Math.min,wd=function(e){return e>0?bd(yd(e),9007199254740991):0},xd=function(e){return wd(e.length)},_d=ou,kd=function(e,t){var n=md(e);return n<0?vd(n+t,0):gd(n,t)},Sd=xd,Ed=function(e){return function(t,n,r){var i,o=_d(t),a=Sd(o),s=kd(r,a);if(e&&n!=n){for(;a>s;)if((i=o[s++])!=i)return!0}else for(;a>s;s++)if((e||s in o)&&o[s]===n)return e||s||0;return!e&&-1}},Od={includes:Ed(!0),indexOf:Ed(!1)},Cd=rc,Td=ou,Nd=Od.indexOf,Md=Pf,Ad=Gl([].push),jd=function(e,t){var n,r=Td(e),i=0,o=[];for(n in r)!Cd(Md,n)&&Cd(r,n)&&Ad(o,n);for(;t.length>i;)Cd(r,n=t[i++])&&(~Nd(o,n)||Ad(o,n));return o},Pd=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ld=jd,Dd=Pd.concat("length","prototype");cd.f=Object.getOwnPropertyNames||function(e){return Ld(e,Dd)};var Rd={};Rd.f=Object.getOwnPropertySymbols;var Id=vu,Fd=cd,Ud=Rd,qd=Xc,zd=Gl([].concat),Bd=Id("Reflect","ownKeys")||function(e){var t=Fd.f(qd(e)),n=Ud.f;return n?zd(t,n(e)):t},Hd=rc,Vd=Bd,Yd=_l,Wd=Yc,Gd=kl,$d=uu,Qd=/#|\.prototype\./,Xd=function(e,t){var n=Kd[Zd(e)];return n==eh||n!=Jd&&($d(t)?Gd(t):!!t)},Zd=Xd.normalize=function(e){return String(e).replace(Qd,".").toLowerCase()},Kd=Xd.data={},Jd=Xd.NATIVE="N",eh=Xd.POLYFILL="P",th=Xd,nh=xl,rh=_l.f,ih=ff,oh=function(e,t,n,r){r||(r={});var i=r.enumerable,o=void 0!==r.name?r.name:t;if(ad(n)&&ld(n,o,r),r.global)i?e[t]=n:ud(t,n);else{try{r.unsafe?e[t]&&(i=!0):delete e[t]}catch(a){}i?e[t]=n:sd.f(e,t,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return e},ah=Gu,sh=function(e,t,n){for(var r=Vd(t),i=Wd.f,o=Yd.f,a=0;ay;y++)if((s||y in m)&&(h=v(d=m[y],y,p),e))if(t)w[y]=h;else if(h)switch(e){case 3:return!0;case 5:return d;case 6:return y;case 2:Wh(w,d)}else switch(e){case 4:return!1;case 7:Wh(w,d)}return o?-1:r||i?i:w}},$h={forEach:Gh(0),map:Gh(1),filter:Gh(2),some:Gh(3),every:Gh(4),find:Gh(5),findIndex:Gh(6),filterReject:Gh(7)},Qh={},Xh=jd,Zh=Pd,Kh=Object.keys||function(e){return Xh(e,Zh)},Jh=Sl,ep=Wc,tp=Yc,np=Xc,rp=ou,ip=Kh;Qh.f=Jh&&!ep?Object.defineProperties:function(e,t){np(e);for(var n,r=rp(t),i=ip(t),o=i.length,a=0;o>a;)tp.f(e,n=i[a++],r[n]);return e};var op,ap=vu("document","documentElement"),sp=Xc,lp=Qh,up=Pd,cp=Pf,fp=ap,dp=Pc,hp=jf("IE_PROTO"),pp=function(){},mp=function(e){return"CHT Technology Radar for Contributors
You need to enable JavaScript to view the CHT Technology Radar for Contributors.
\ No newline at end of file
+CHT Technology Radar for Contributors
You need to enable JavaScript to view the CHT Technology Radar for Contributors.
\ No newline at end of file
diff --git a/tools/couch2pg.html b/tools/couch2pg.html
index d705856..2447d4e 100644
--- a/tools/couch2pg.html
+++ b/tools/couch2pg.html
@@ -1,3 +1,3 @@
-couch2pg | CHT Technology Radar for Contributors couch2pg couch2pg is library and cli for one-way replicating CouchDB databases to PostgreSQL 9.4+.
+
couch2pg | CHT Technology Radar for Contributors couch2pg couch2pg is library and cli for one-way replicating CouchDB databases to PostgreSQL 9.4+.
It is currently in maintenance. Look into cht-sync and cht-pipeline instead.
\ No newline at end of file
diff --git a/tools/couchdb.html b/tools/couchdb.html
index 1dea36e..506f245 100644
--- a/tools/couchdb.html
+++ b/tools/couchdb.html
@@ -1,4 +1,4 @@
-
CouchDB | CHT Technology Radar for Contributors CouchDB Apache CouchDB is an open-source document-oriented NoSQL database.
+
CouchDB | CHT Technology Radar for Contributors CouchDB Apache CouchDB is an open-source document-oriented NoSQL database.
It uses multiple formats and protocols to store, transfer, and process its data. It uses JSON to store data, JavaScript as its query language using MapReduce, and HTTP for an API.
CouchDB is the primary database for the CHT. The CHT has a range of CouchDB databases for storing different types of data.
\ No newline at end of file
diff --git a/tools/dbt.html b/tools/dbt.html
index 17c89b8..9b7bdc6 100644
--- a/tools/dbt.html
+++ b/tools/dbt.html
@@ -1,4 +1,4 @@
-
dbt | CHT Technology Radar for Contributors dbt dbt is an open-source tool and a commercial SaaS product that provides simple and effective transformation capabilities for data analysts.
+
dbt | CHT Technology Radar for Contributors dbt dbt is an open-source tool and a commercial SaaS product that provides simple and effective transformation capabilities for data analysts.
dbt uses SQL to model simple batch transformations, while it provides command-line tooling that encourages good engineering practices such as versioning, automated testing and deployment; essentially it implements SQL-based transformation modeling as code.
It currently supports multiple data sources, including Postgres.
It the CHT context, dbt runs data tests and migrations for cht-sync .
diff --git a/tools/docker.html b/tools/docker.html
index e519ec0..a5cd83f 100644
--- a/tools/docker.html
+++ b/tools/docker.html
@@ -1,4 +1,4 @@
-
Docker | CHT Technology Radar for Contributors Docker Docker is currently the most-used solution for creating and managing container-based infrastructures and deployments.
+
Docker | CHT Technology Radar for Contributors Docker Docker is currently the most-used solution for creating and managing container-based infrastructures and deployments.
Docker is a platform to build container images, distribute them and run them as an isolated process (using Linux kernel cgroups, network namespaces and custom mounts).
It is used extensively for containerizing CHT products.
\ No newline at end of file
diff --git a/tools/dot.html b/tools/dot.html
index 1706c90..c161512 100644
--- a/tools/dot.html
+++ b/tools/dot.html
@@ -1,4 +1,4 @@
-
DOT | CHT Technology Radar for Contributors DOT Data Observation Toolkit (DOT) can be used to monitor data in order to flag problems with data integrity and scenarios that might need attention.
+
DOT | CHT Technology Radar for Contributors DOT Data Observation Toolkit (DOT) can be used to monitor data in order to flag problems with data integrity and scenarios that might need attention.
Typical tests include checks for missing/duplicate and inconsistent data, outliers, and domain-specific signals such as a missed follow-up medical treatment after initial diagnosis.
DOT includes a simple user interface for configuring the powerful DBT and Great Expectations libraries, as well as a database for storing and classifying data monitoring results.
\ No newline at end of file
diff --git a/tools/git.html b/tools/git.html
index 6681302..1df68f4 100644
--- a/tools/git.html
+++ b/tools/git.html
@@ -1,2 +1,2 @@
-
git | CHT Technology Radar for Contributors git Git is a free and open-source distributed version control system.
+
git | CHT Technology Radar for Contributors git Git is a free and open-source distributed version control system.
\ No newline at end of file
diff --git a/tools/github-actions.html b/tools/github-actions.html
index 3dddffd..fac866f 100644
--- a/tools/github-actions.html
+++ b/tools/github-actions.html
@@ -1,2 +1,2 @@
-
GitHub Actions | CHT Technology Radar for Contributors GitHub Actions GitHub Actions is used extensively for Continuous Integration (CI) across CHT products including testing and releasing.
+
GitHub Actions | CHT Technology Radar for Contributors GitHub Actions GitHub Actions is used extensively for Continuous Integration (CI) across CHT products including testing and releasing.
\ No newline at end of file
diff --git a/tools/grafana.html b/tools/grafana.html
index 5292b81..2928f3e 100644
--- a/tools/grafana.html
+++ b/tools/grafana.html
@@ -1,4 +1,4 @@
-
Grafana | CHT Technology Radar for Contributors Grafana Grafana is an open-source dashboard visualization and alerting software.
+
Grafana | CHT Technology Radar for Contributors Grafana Grafana is an open-source dashboard visualization and alerting software.
It is an industry standard for this task, and it is written in Go and NodeJS.
It provides a vast choice of different graph types that can be easily combined into dashboards for displaying any kind of numerical or time-based data.
There is a free repository of pre-existing dashboards which greatly reduce the time to create new dashboards and alerts.
diff --git a/tools/grunt.html b/tools/grunt.html
index 9a332be..eccecc8 100644
--- a/tools/grunt.html
+++ b/tools/grunt.html
@@ -1,3 +1,3 @@
-
Grunt | CHT Technology Radar for Contributors Grunt Grunt was designed as a task-based command line build tool for JavaScript projects. Grunt is primarily used to automate tasks that need to be performed routinely.
-
Deprecated: Use native JavaScript instead.
+
Grunt | CHT Technology Radar for Contributors Grunt Grunt was designed as a task-based command line build tool for JavaScript projects. Grunt is primarily used to automate tasks that need to be performed routinely.
+
Deprecated: Use native JavaScript instead. Last available on: CHT 4.3 .
\ No newline at end of file
diff --git a/tools/haproxy.html b/tools/haproxy.html
index 3450bff..96d65b7 100644
--- a/tools/haproxy.html
+++ b/tools/haproxy.html
@@ -1,3 +1,3 @@
-
HAProxy | CHT Technology Radar for Contributors HAProxy HAProxy is a free reverse-proxy offering high availability, load balancing, and proxying for TCP and HTTP-based applications.
+
HAProxy | CHT Technology Radar for Contributors HAProxy HAProxy is a free reverse-proxy offering high availability, load balancing, and proxying for TCP and HTTP-based applications.
It is used for audit logging and load balancing CouchDB cluster. Due for re-evaluation.
\ No newline at end of file
diff --git a/tools/k3d.html b/tools/k3d.html
index 0c32f7e..812096e 100644
--- a/tools/k3d.html
+++ b/tools/k3d.html
@@ -1,3 +1,3 @@
-
k3d | CHT Technology Radar for Contributors k3d k3d is a lightweight wrapper to run k3s (Rancher Lab’s minimal Kubernetes distribution) in docker.
+
k3d | CHT Technology Radar for Contributors k3d k3d is a lightweight wrapper to run k3s (Rancher Lab’s minimal Kubernetes distribution) in docker.
k3d makes it very easy to create single- and multi-node k3s clusters in Docker, e.g. for local development on Kubernetes.
\ No newline at end of file
diff --git a/tools/k3s.html b/tools/k3s.html
index 6c4c45e..272d281 100644
--- a/tools/k3s.html
+++ b/tools/k3s.html
@@ -1,2 +1,2 @@
-
k3s | CHT Technology Radar for Contributors k3s k3s is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances.
+
k3s | CHT Technology Radar for Contributors k3s k3s is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances.
\ No newline at end of file
diff --git a/tools/klipfolio.html b/tools/klipfolio.html
index 5df316b..936f480 100644
--- a/tools/klipfolio.html
+++ b/tools/klipfolio.html
@@ -1,3 +1,3 @@
-
Klipfolio | CHT Technology Radar for Contributors Klipfolio We recommend using Superset for building dashboards with the CHT, as it is an open-source tool.
+
Klipfolio | CHT Technology Radar for Contributors Klipfolio We recommend using Superset for building dashboards with the CHT, as it is an open-source tool.
Read more about Data Flows for Analytics with the CHT in the CHT documentation .
\ No newline at end of file
diff --git a/tools/kubernetes.html b/tools/kubernetes.html
index 23054fd..7371403 100644
--- a/tools/kubernetes.html
+++ b/tools/kubernetes.html
@@ -1,3 +1,3 @@
-
Kubernetes | CHT Technology Radar for Contributors Kubernetes Kubernetes , also known as k8s, is an open-source system for automating deployment, scaling, and management of containerized applications.
+
Kubernetes | CHT Technology Radar for Contributors Kubernetes Kubernetes , also known as k8s, is an open-source system for automating deployment, scaling, and management of containerized applications.
Kubernetes has developed into the quasi-standard for container orchestration: Nearly every cloud provider provides managed Kubernetes, and even Docker Enterprise uses Kubernetes.
\ No newline at end of file
diff --git a/tools/nginx.html b/tools/nginx.html
index ad1f7cd..4dbc483 100644
--- a/tools/nginx.html
+++ b/tools/nginx.html
@@ -1,3 +1,3 @@
-
Nginx | CHT Technology Radar for Contributors Nginx Nginx is an open-source web server software used for reverse proxy, load balancing, and caching.
+
Nginx | CHT Technology Radar for Contributors Nginx Nginx is an open-source web server software used for reverse proxy, load balancing, and caching.
It provides SSL termination for self-hosted CHT deployments.
\ No newline at end of file
diff --git a/tools/npm.html b/tools/npm.html
index 99cc9fa..3558489 100644
--- a/tools/npm.html
+++ b/tools/npm.html
@@ -1,3 +1,3 @@
-
npm | CHT Technology Radar for Contributors npm npm is a library and registry for JavaScript software packages.
+
npm | CHT Technology Radar for Contributors npm npm is a library and registry for JavaScript software packages.
It is used widely for CHT products.
\ No newline at end of file
diff --git a/tools/postgres.html b/tools/postgres.html
index ed1f852..947fea8 100644
--- a/tools/postgres.html
+++ b/tools/postgres.html
@@ -1,2 +1,2 @@
-
Postgres | CHT Technology Radar for Contributors Postgres Postgres is primarily used as a data warehouse for analytics queries.
+
Postgres | CHT Technology Radar for Contributors Postgres Postgres is primarily used as a data warehouse for analytics queries.
\ No newline at end of file
diff --git a/tools/prometheus.html b/tools/prometheus.html
index b5e6f01..3c989c9 100644
--- a/tools/prometheus.html
+++ b/tools/prometheus.html
@@ -1,4 +1,4 @@
-
Prometheus | CHT Technology Radar for Contributors Prometheus Prometheus is an open-source Time Series Database (TSDB) that was developed explicitly to do detailed longitudinal monitoring.
+
Prometheus | CHT Technology Radar for Contributors Prometheus Prometheus is an open-source Time Series Database (TSDB) that was developed explicitly to do detailed longitudinal monitoring.
It also aggregates metrics and can automatically cull older data to save on CPU and disk space.
Compared to other monitoring systems it stands out in its simple, still powerful and fully code-based configuration and the equally powerful service discovery mechanism.
Prometheus integrates very well with Grafana which is the tool of choice for dashboard visualization in the CHT Watchdog.
diff --git a/tools/sonarcloud.html b/tools/sonarcloud.html
index 934f796..ae42a0a 100644
--- a/tools/sonarcloud.html
+++ b/tools/sonarcloud.html
@@ -1,4 +1,4 @@
-
SonarCloud | CHT Technology Radar for Contributors SonarCloud Sonar static analysis supports development by providing feedback on code quality and security issues.
+
SonarCloud | CHT Technology Radar for Contributors SonarCloud Sonar static analysis supports development by providing feedback on code quality and security issues.
SonarCloud is the cloud-based solution of Sonar.
It can be enabled on any public GitHub repository in the Medic organization and must pass on all new code.
You can find more details about using SonarCloud with the CHT
diff --git a/tools/superset.html b/tools/superset.html
index 26d74f8..ecb8d2c 100644
--- a/tools/superset.html
+++ b/tools/superset.html
@@ -1,3 +1,3 @@
-
Superset | CHT Technology Radar for Contributors Superset Superset is an open-source data exploration and visualization platform.
+
Superset | CHT Technology Radar for Contributors Superset Superset is an open-source data exploration and visualization platform.
In the context of the CHT, Superset is used for health care analytics.
\ No newline at end of file